Re: [PATCH] NFS: filelayout should use nfs_generic_pg_test

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2011-06-01 at 08:47 +0300, Boaz Harrosh wrote: 
> On 06/01/2011 06:18 AM, Weston Andros Adamson wrote:
> > Use nfs_generic_pg_test instead of pnfs_generic_pg_test.
> > 
> > This fixes the BUG at fs/nfs/write.c:941 introduced by
> > 89a58e32d9105c01022a757fb32ddc3b51bf0025.
> > 
> > I was able to trigger this BUG reliably using pynfs in pnfs mode,
> > by using dd(1) to write many small blocks.
> > 
> > Signed-off-by: Weston Andros Adamson <dros@xxxxxxxxxx>
> > ---
> > Fix proposed by Trond.
> > 
> > Benny- Does this make sense?
> > 
> >  fs/nfs/nfs4filelayout.c  |    2 +-
> >  fs/nfs/pagelist.c        |    5 ++++-
> >  include/linux/nfs_page.h |    3 ++-
> >  3 files changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c
> > index 4269088..1c3bb72 100644
> > --- a/fs/nfs/nfs4filelayout.c
> > +++ b/fs/nfs/nfs4filelayout.c
> > @@ -661,7 +661,7 @@ filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev,
> >  	u64 p_stripe, r_stripe;
> >  	u32 stripe_unit;
> >  
> > -	if (!pnfs_generic_pg_test(pgio, prev, req))
> > +	if (!nfs_generic_pg_test(pgio, prev, req))
> >  		return 0;
> >  
> 
> pnfs_generic_pg_test is the one that gets the layout.
> 
> What you've done is revert to MDS IO

The "files" layout type always gets the layout in the pg_doio() method
instead of the pg_test().

Cheers
  Trond

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com

--
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


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux