Return-Path: Received: from mail-qy0-f181.google.com ([209.85.216.181]:35063 "EHLO mail-qy0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753866Ab1GZQho (ORCPT ); Tue, 26 Jul 2011 12:37:44 -0400 Received: by qyk9 with SMTP id 9so338481qyk.19 for ; Tue, 26 Jul 2011 09:37:44 -0700 (PDT) Message-ID: <4E2EED55.2040401@tonian.com> Date: Tue, 26 Jul 2011 12:37:41 -0400 From: Benny Halevy To: "Myklebust, Trond" CC: Jim Rees , Peng Tao , tao.peng@emc.com, linux-nfs@vger.kernel.org Subject: Re: [PATCH] NFS41: Drop lseg ref before fallthru to MDS References: <1309743002-1658-1-git-send-email-bergwolf@gmail.com> <4E18614C.4010002@tonian.com> <1311621204.28209.14.camel@lade.trondhjem.org> <2E1EB2CF9ED1CB4AA966F0EB76EAB4430A51825D@SACMVEXC2-PRD.hq.netapp.com> <20110726160805.GA1922@merit.edu> <2E1EB2CF9ED1CB4AA966F0EB76EAB4430A5182A2@SACMVEXC2-PRD.hq.netapp.com> In-Reply-To: <2E1EB2CF9ED1CB4AA966F0EB76EAB4430A5182A2@SACMVEXC2-PRD.hq.netapp.com> Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-nfs-owner@vger.kernel.org List-ID: MIME-Version: 1.0 On 2011-07-26 12:14, Myklebust, Trond wrote: >> -----Original Message----- >> From: Jim Rees [mailto:rees@umich.edu] >> Sent: Tuesday, July 26, 2011 12:08 PM >> To: Myklebust, Trond >> Cc: Peng Tao; tao.peng@emc.com; linux-nfs@vger.kernel.org; >> bhalevy@tonian.com >> Subject: Re: [PATCH] NFS41: Drop lseg ref before fallthru to MDS >> >> Myklebust, Trond wrote: >> >> > Thanks for your explanation. Is there any plan on how to fix >> > pnfs_ld_read/write_done? Basically, we would need an interface > that >> > can redirect the IO to MDS if pnfs_error is set or do all > necessary >> > cleanup work to end read/write if pnfs_error is 0. IMHO, the >> > recoalesce logic need to access nfs_pageio_descriptor but we do > not >> > have that information at pnfs_ld_read/write_done. >> >> As far as I can see, the right thing to do is to mark the layout as >> invalid and then redirty the page. It should be easy to have fsync() >> re-send the pages in this case. These should be extremely rare >> events, >> since we expect to catch most of the pNFS failures when we do the >> actual >> LAYOUTGET in the ->pg_init(). >> >> My main worry is for aio/dio where there is no good mechanism for >> retrying. I'm still working on that... >> >> What do you suggest we do for the current set of patches that add > block >> layout to pnfs? > > If you are calling pnfs_ld_read/write_done, then don't change anything: > it is easier to fix this in one spot rather than several. Even if we plan on fixing this for the next merge window I think there's value with the current fix even if it's going to be replaced with a better fix along the road. > However someone needs to start working on fixing the code in > pnfs_ld_read/write_done to do the right thing. If nobody else has the > cycles, then I can do that but I'd prefer to have someone who can easily > test the resulting code do it. I don't have cycles to code this either but I'll be happy to help with looking at the design and reviewing the implementation. Benny > > Cheers > Trond > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html