On 2011-07-26 12:14, Myklebust, Trond wrote: >> -----Original Message----- >> From: Jim Rees [mailto:rees@xxxxxxxxx] >> Sent: Tuesday, July 26, 2011 12:08 PM >> To: Myklebust, Trond >> Cc: Peng Tao; tao.peng@xxxxxxx; linux-nfs@xxxxxxxxxxxxxxx; >> bhalevy@xxxxxxxxxx >> 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html