> -----Original Message----- > From: linux-nfs-owner@xxxxxxxxxxxxxxx [mailto:linux-nfs-owner@xxxxxxxxxxxxxxx] > On Behalf Of Trond Myklebust > Sent: Thursday, July 28, 2011 11:53 AM > To: Peng, Tao > Cc: rees@xxxxxxxxx; linux-nfs@xxxxxxxxxxxxxxx; honey@xxxxxxxxxxxxxx > Subject: RE: [PATCH v3 23/25] pnfsblock: use pageio_ops api > > 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. I see your point. We will move this patch to earlier place so it doesn't break bisect. Thanks, Tao > > 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 ��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥