[pnfs] [PATCH 19/20] 2.6-latest pnfs client no rpc nfs page cache cleanup
William A. (Andy) Adamson
andros at citi.umich.edu
Mon Dec 3 16:41:06 EST 2007
On 12/3/07, Dean Hildebrand <seattleplus at gmail.com> wrote:
>
>
> >
> >
> > so pnfs_read_done calls data->call_ops->rpc_call_done() which is
> > either nfs_readpage_result_full() or nfs_readpage_result_partial()
> > both of these functions call nfs_readpage_result() which in turn
> > calls NFS_PROTO(data->inode)->read_done() which is pnfs4_read_done,
> > which does the right thing for the NO_RPC path when the PNFS_NO_RPC
> > flag is set.
> Ok, I missed a 4. How confusing is it to have a function pnfs_read_done
> and pnfs4_read_done. Done *what* is my question. It sounds like we
> need to rename some of these functions. What is each function really
> finishing?
agreed. we should change function names, comb fs/nfs/pnfs.c and remove
functions that are no longer needed,
take a look at the modules API and clean it up etc etc etc.
but not before moving the current 12.6.18.3 code forward with as little
change as possible.
-->Andy
Dean
> >
> >
> > If so, just remove the call to the function.
> >
> >
> > nope. then there would be no nfs page cache cleanup on the no-rpc path.
> >
> > -->Andy
> >
> > Dean
> > >
> > > /*
> > > diff --git a/fs/nfs/read.c b/fs/nfs/read.c
> > > index 4cf47c5..1852434 100644
> > > --- a/fs/nfs/read.c
> > > +++ b/fs/nfs/read.c
> > > @@ -381,6 +381,10 @@ static int nfs_readpage_retry(struct
> > rpc_task *task, struct nfs_read_data *data)
> > > struct nfs_readargs *argp = &data->args;
> > > struct nfs_readres *resp = &data->res;
> > >
> > > +#ifdef CONFIG_PNFS
> > > + if (data->pnfsflags & PNFS_NO_RPC)
> > > + return 0;
> > > +#endif /* CONFIG_PNFS */
> > > if (resp->eof || resp->count == argp->count)
> > > return 0;
> > >
> > > diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
> > > index a6f429b..f747637 100644
> > > --- a/include/linux/nfs_xdr.h
> > > +++ b/include/linux/nfs_xdr.h
> > > @@ -1069,7 +1069,7 @@ struct nfs_read_data {
> > > #ifdef CONFIG_PNFS
> > > /* pnfsflag values */
> > > #define PNFS_ISSYNC 0x0001 /* sync I/O request */
> > > -#define PNFS_USE_FULL_CB 0x0002 /* non rpc result
> > callback switch */
> > > +#define PNFS_NO_RPC 0x0002 /* non rpc result
> > callback switch */
> > > #endif /* CONFIG_PNFS */
> > >
> > > struct nfs_write_data {
> > >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://linux-nfs.org/pipermail/pnfs/attachments/20071203/89c665fa/attachment.htm
More information about the pNFS
mailing list