RE: [PATCH v3 23/25] pnfsblock: use pageio_ops api

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

 



On Wed, 2011-07-27 at 22:27 -0400, tao.peng@xxxxxxx wrote: 
> > -----Original Message-----
> > From: linux-nfs-owner@xxxxxxxxxxxxxxx [mailto:linux-nfs-owner@xxxxxxxxxxxxxxx]
> > On Behalf Of Trond Myklebust
> > Sent: Thursday, July 28, 2011 4:15 AM
> > To: Jim Rees
> > Cc: linux-nfs@xxxxxxxxxxxxxxx; peter honeyman
> > Subject: Re: [PATCH v3 23/25] pnfsblock: use pageio_ops api
> > 
> > On Wed, 2011-07-27 at 14:40 -0400, Jim Rees wrote:
> > > From: Benny Halevy <bhalevy@xxxxxxxxxxx>
> > >
> > > [pnfsblock: use pnfs_generic_pg_init_read/write]
> > > Signed-off-by: Peng Tao <peng_tao@xxxxxxx>
> > > Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
> > > ---
> > >  fs/nfs/blocklayout/blocklayout.c |   14 ++++++++++++++
> > >  1 files changed, 14 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
> > > index 22de05c..502d384 100644
> > > --- a/fs/nfs/blocklayout/blocklayout.c
> > > +++ b/fs/nfs/blocklayout/blocklayout.c
> > > @@ -762,6 +762,18 @@ bl_clear_layoutdriver(struct nfs_server *server)
> > >  	return 0;
> > >  }
> > >
> > > +static const struct nfs_pageio_ops bl_pg_read_ops = {
> > > +	.pg_init = pnfs_generic_pg_init_read,
> > > +	.pg_test = pnfs_generic_pg_test,
> > > +	.pg_doio = pnfs_generic_pg_readpages,
> > > +};
> > > +
> > > +static const struct nfs_pageio_ops bl_pg_write_ops = {
> > > +	.pg_init = pnfs_generic_pg_init_write,
> > > +	.pg_test = pnfs_generic_pg_test,
> > > +	.pg_doio = pnfs_generic_pg_writepages,
> > > +};
> > > +
> > >  static struct pnfs_layoutdriver_type blocklayout_type = {
> > >  	.id				= LAYOUT_BLOCK_VOLUME,
> > >  	.name				= "LAYOUT_BLOCK_VOLUME",
> > > @@ -775,6 +787,8 @@ static struct pnfs_layoutdriver_type blocklayout_type = {
> > >  	.cleanup_layoutcommit		= bl_cleanup_layoutcommit,
> > >  	.set_layoutdriver		= bl_set_layoutdriver,
> > >  	.clear_layoutdriver		= bl_clear_layoutdriver,
> > > +	.pg_read_ops			= &bl_pg_read_ops,
> > > +	.pg_write_ops			= &bl_pg_write_ops,
> > >  };
> > >
> > How did this work previously?
> block layout used to use .pg_test interface in pnfs_layoutdriver_type but it got removed in the 3.0 merge window.

Right, but won't the entire blocks interface blow up in your face until
you merge this patch? If it just falls back to write through MDS, then
I'm fine, but my worry is that someone who git bisects in order to track
down a patch may end up seeing new panics due to the lack of a
well-defined struct nfs_pageio_ops in blocks.

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