Return-Path: linux-nfs-owner@vger.kernel.org Received: from mail-qg0-f50.google.com ([209.85.192.50]:43774 "EHLO mail-qg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750813AbaEBS7I (ORCPT ); Fri, 2 May 2014 14:59:08 -0400 Received: by mail-qg0-f50.google.com with SMTP id 63so5215056qgz.9 for ; Fri, 02 May 2014 11:59:07 -0700 (PDT) Date: Fri, 2 May 2014 14:59:04 -0400 From: Jeff Layton To: Anna Schumaker Cc: , , , Subject: Re: [PATCH v2 03/17] NFS: Create a common read and write data struct Message-ID: <20140502145904.18daa819@tlielax.poochiereds.net> In-Reply-To: <1398459360-2093-4-git-send-email-Anna.Schumaker@Netapp.com> References: <1398459360-2093-1-git-send-email-Anna.Schumaker@Netapp.com> <1398459360-2093-4-git-send-email-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-nfs-owner@vger.kernel.org List-ID: On Fri, 25 Apr 2014 16:55:46 -0400 Anna Schumaker wrote: > From: Anna Schumaker > > At this point, the only difference between nfs_read_data and > nfs_write_data is the write verifier. > > Signed-off-by: Anna Schumaker > --- > fs/nfs/blocklayout/blocklayout.c | 22 ++++++++++---------- > fs/nfs/internal.h | 10 ++++----- > fs/nfs/nfs3proc.c | 12 +++++------ > fs/nfs/nfs4_fs.h | 4 ++-- > fs/nfs/nfs4filelayout.c | 34 +++++++++++++++---------------- > fs/nfs/nfs4proc.c | 30 +++++++++++++-------------- > fs/nfs/nfs4trace.h | 8 ++++---- > fs/nfs/objlayout/objio_osd.c | 6 +++--- > fs/nfs/objlayout/objlayout.c | 16 +++++++-------- > fs/nfs/objlayout/objlayout.h | 8 ++++---- > fs/nfs/pnfs.c | 26 ++++++++++++------------ > fs/nfs/pnfs.h | 10 ++++----- > fs/nfs/proc.c | 12 +++++------ > fs/nfs/read.c | 32 ++++++++++++++--------------- > fs/nfs/write.c | 36 ++++++++++++++++---------------- > include/linux/nfs_fs.h | 4 ++-- > include/linux/nfs_xdr.h | 44 ++++++++++++++-------------------------- > 17 files changed, 150 insertions(+), 164 deletions(-) > > diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c > index 65d849b..206cc68 100644 > --- a/fs/nfs/blocklayout/blocklayout.c > +++ b/fs/nfs/blocklayout/blocklayout.c > @@ -210,7 +210,7 @@ static void bl_end_io_read(struct bio *bio, int err) > SetPageUptodate(bvec->bv_page); > > if (err) { > - struct nfs_read_data *rdata = par->data; > + struct nfs_pgio_data *rdata = par->data; > struct nfs_pgio_header *header = rdata->header; > > if (!header->pnfs_error) > @@ -224,17 +224,17 @@ static void bl_end_io_read(struct bio *bio, int err) > static void bl_read_cleanup(struct work_struct *work) > { > struct rpc_task *task; > - struct nfs_read_data *rdata; > + struct nfs_pgio_data *rdata; > dprintk("%s enter\n", __func__); > task = container_of(work, struct rpc_task, u.tk_work); > - rdata = container_of(task, struct nfs_read_data, task); > + rdata = container_of(task, struct nfs_pgio_data, task); > pnfs_ld_read_done(rdata); > } > > static void > bl_end_par_io_read(void *data, int unused) > { > - struct nfs_read_data *rdata = data; > + struct nfs_pgio_data *rdata = data; > > rdata->task.tk_status = rdata->header->pnfs_error; > INIT_WORK(&rdata->task.u.tk_work, bl_read_cleanup); > @@ -242,7 +242,7 @@ bl_end_par_io_read(void *data, int unused) > } > > static enum pnfs_try_status > -bl_read_pagelist(struct nfs_read_data *rdata) > +bl_read_pagelist(struct nfs_pgio_data *rdata) > { > struct nfs_pgio_header *header = rdata->header; > int i, hole; > @@ -390,7 +390,7 @@ static void bl_end_io_write_zero(struct bio *bio, int err) > } > > if (unlikely(err)) { > - struct nfs_write_data *data = par->data; > + struct nfs_pgio_data *data = par->data; > struct nfs_pgio_header *header = data->header; > > if (!header->pnfs_error) > @@ -405,7 +405,7 @@ static void bl_end_io_write(struct bio *bio, int err) > { > struct parallel_io *par = bio->bi_private; > const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); > - struct nfs_write_data *data = par->data; > + struct nfs_pgio_data *data = par->data; > struct nfs_pgio_header *header = data->header; > > if (!uptodate) { > @@ -423,10 +423,10 @@ static void bl_end_io_write(struct bio *bio, int err) > static void bl_write_cleanup(struct work_struct *work) > { > struct rpc_task *task; > - struct nfs_write_data *wdata; > + struct nfs_pgio_data *wdata; > dprintk("%s enter\n", __func__); > task = container_of(work, struct rpc_task, u.tk_work); > - wdata = container_of(task, struct nfs_write_data, task); > + wdata = container_of(task, struct nfs_pgio_data, task); > if (likely(!wdata->header->pnfs_error)) { > /* Marks for LAYOUTCOMMIT */ > mark_extents_written(BLK_LSEG2EXT(wdata->header->lseg), > @@ -438,7 +438,7 @@ static void bl_write_cleanup(struct work_struct *work) > /* Called when last of bios associated with a bl_write_pagelist call finishes */ > static void bl_end_par_io_write(void *data, int num_se) > { > - struct nfs_write_data *wdata = data; > + struct nfs_pgio_data *wdata = data; > > if (unlikely(wdata->header->pnfs_error)) { > bl_free_short_extents(&BLK_LSEG2EXT(wdata->header->lseg)->bl_inval, > @@ -673,7 +673,7 @@ check_page: > } > > static enum pnfs_try_status > -bl_write_pagelist(struct nfs_write_data *wdata, int sync) > +bl_write_pagelist(struct nfs_pgio_data *wdata, int sync) > { > struct nfs_pgio_header *header = wdata->header; > int i, ret, npg_zero, pg_index, last = 0; > diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h > index 98fe618..af01b80 100644 > --- a/fs/nfs/internal.h > +++ b/fs/nfs/internal.h > @@ -401,13 +401,13 @@ extern void nfs_pageio_init_read(struct nfs_pageio_descriptor *pgio, > struct inode *inode, bool force_mds, > const struct nfs_pgio_completion_ops *compl_ops); > extern int nfs_initiate_read(struct rpc_clnt *clnt, > - struct nfs_read_data *data, > + struct nfs_pgio_data *data, > const struct rpc_call_ops *call_ops, int flags); > extern void nfs_read_prepare(struct rpc_task *task, void *calldata); > extern int nfs_generic_pagein(struct nfs_pageio_descriptor *desc, > struct nfs_pgio_header *hdr); > extern void nfs_pageio_reset_read_mds(struct nfs_pageio_descriptor *pgio); > -extern void nfs_readdata_release(struct nfs_read_data *rdata); > +extern void nfs_readdata_release(struct nfs_pgio_data *rdata); > > /* super.c */ > void nfs_clone_super(struct super_block *, struct nfs_mount_info *); > @@ -429,10 +429,10 @@ extern void nfs_writehdr_free(struct nfs_pgio_header *hdr); > extern int nfs_generic_flush(struct nfs_pageio_descriptor *desc, > struct nfs_pgio_header *hdr); > extern void nfs_pageio_reset_write_mds(struct nfs_pageio_descriptor *pgio); > -extern void nfs_writedata_release(struct nfs_write_data *wdata); > +extern void nfs_writedata_release(struct nfs_pgio_data *wdata); > extern void nfs_commit_free(struct nfs_commit_data *p); > extern int nfs_initiate_write(struct rpc_clnt *clnt, > - struct nfs_write_data *data, > + struct nfs_pgio_data *data, > const struct rpc_call_ops *call_ops, > int how, int flags); > extern void nfs_write_prepare(struct rpc_task *task, void *calldata); > @@ -492,7 +492,7 @@ static inline void nfs_inode_dio_wait(struct inode *inode) > extern ssize_t nfs_dreq_bytes_left(struct nfs_direct_req *dreq); > > /* nfs4proc.c */ > -extern void __nfs4_read_done_cb(struct nfs_read_data *); > +extern void __nfs4_read_done_cb(struct nfs_pgio_data *); > extern struct nfs_client *nfs4_init_client(struct nfs_client *clp, > const struct rpc_timeout *timeparms, > const char *ip_addr); > diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c > index d873241..d235369 100644 > --- a/fs/nfs/nfs3proc.c > +++ b/fs/nfs/nfs3proc.c > @@ -795,7 +795,7 @@ nfs3_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle, > return status; > } > > -static int nfs3_read_done(struct rpc_task *task, struct nfs_read_data *data) > +static int nfs3_read_done(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct inode *inode = data->header->inode; > > @@ -807,18 +807,18 @@ static int nfs3_read_done(struct rpc_task *task, struct nfs_read_data *data) > return 0; > } > > -static void nfs3_proc_read_setup(struct nfs_read_data *data, struct rpc_message *msg) > +static void nfs3_proc_read_setup(struct nfs_pgio_data *data, struct rpc_message *msg) > { > msg->rpc_proc = &nfs3_procedures[NFS3PROC_READ]; > } > > -static int nfs3_proc_read_rpc_prepare(struct rpc_task *task, struct nfs_read_data *data) > +static int nfs3_proc_read_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data) > { > rpc_call_start(task); > return 0; > } > > -static int nfs3_write_done(struct rpc_task *task, struct nfs_write_data *data) > +static int nfs3_write_done(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct inode *inode = data->header->inode; > > @@ -829,12 +829,12 @@ static int nfs3_write_done(struct rpc_task *task, struct nfs_write_data *data) > return 0; > } > > -static void nfs3_proc_write_setup(struct nfs_write_data *data, struct rpc_message *msg) > +static void nfs3_proc_write_setup(struct nfs_pgio_data *data, struct rpc_message *msg) > { > msg->rpc_proc = &nfs3_procedures[NFS3PROC_WRITE]; > } > > -static int nfs3_proc_write_rpc_prepare(struct rpc_task *task, struct nfs_write_data *data) > +static int nfs3_proc_write_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data) > { > rpc_call_start(task); > return 0; > diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h > index e1d1bad..f63cb87 100644 > --- a/fs/nfs/nfs4_fs.h > +++ b/fs/nfs/nfs4_fs.h > @@ -337,7 +337,7 @@ nfs4_state_protect(struct nfs_client *clp, unsigned long sp4_mode, > */ > static inline void > nfs4_state_protect_write(struct nfs_client *clp, struct rpc_clnt **clntp, > - struct rpc_message *msg, struct nfs_write_data *wdata) > + struct rpc_message *msg, struct nfs_pgio_data *wdata) > { > if (_nfs4_state_protect(clp, NFS_SP4_MACH_CRED_WRITE, clntp, msg) && > !test_bit(NFS_SP4_MACH_CRED_COMMIT, &clp->cl_sp4_flags)) > @@ -369,7 +369,7 @@ nfs4_state_protect(struct nfs_client *clp, unsigned long sp4_flags, > > static inline void > nfs4_state_protect_write(struct nfs_client *clp, struct rpc_clnt **clntp, > - struct rpc_message *msg, struct nfs_write_data *wdata) > + struct rpc_message *msg, struct nfs_pgio_data *wdata) > { > } > #endif /* CONFIG_NFS_V4_1 */ > diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c > index b9a35c0..e693614 100644 > --- a/fs/nfs/nfs4filelayout.c > +++ b/fs/nfs/nfs4filelayout.c > @@ -84,7 +84,7 @@ filelayout_get_dserver_offset(struct pnfs_layout_segment *lseg, loff_t offset) > BUG(); > } > > -static void filelayout_reset_write(struct nfs_write_data *data) > +static void filelayout_reset_write(struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > struct rpc_task *task = &data->task; > @@ -105,7 +105,7 @@ static void filelayout_reset_write(struct nfs_write_data *data) > } > } > > -static void filelayout_reset_read(struct nfs_read_data *data) > +static void filelayout_reset_read(struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > struct rpc_task *task = &data->task; > @@ -243,7 +243,7 @@ wait_on_recovery: > /* NFS_PROTO call done callback routines */ > > static int filelayout_read_done_cb(struct rpc_task *task, > - struct nfs_read_data *data) > + struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > int err; > @@ -270,7 +270,7 @@ static int filelayout_read_done_cb(struct rpc_task *task, > * rfc5661 is not clear about which credential should be used. > */ > static void > -filelayout_set_layoutcommit(struct nfs_write_data *wdata) > +filelayout_set_layoutcommit(struct nfs_pgio_data *wdata) > { > struct nfs_pgio_header *hdr = wdata->header; > > @@ -305,7 +305,7 @@ filelayout_reset_to_mds(struct pnfs_layout_segment *lseg) > */ > static void filelayout_read_prepare(struct rpc_task *task, void *data) > { > - struct nfs_read_data *rdata = data; > + struct nfs_pgio_data *rdata = data; > > if (unlikely(test_bit(NFS_CONTEXT_BAD, &rdata->args.context->flags))) { > rpc_exit(task, -EIO); > @@ -317,7 +317,7 @@ static void filelayout_read_prepare(struct rpc_task *task, void *data) > rpc_exit(task, 0); > return; > } > - rdata->read_done_cb = filelayout_read_done_cb; > + rdata->pgio_done_cb = filelayout_read_done_cb; > > if (nfs41_setup_sequence(rdata->ds_clp->cl_session, > &rdata->args.seq_args, > @@ -331,7 +331,7 @@ static void filelayout_read_prepare(struct rpc_task *task, void *data) > > static void filelayout_read_call_done(struct rpc_task *task, void *data) > { > - struct nfs_read_data *rdata = data; > + struct nfs_pgio_data *rdata = data; > > dprintk("--> %s task->tk_status %d\n", __func__, task->tk_status); > > @@ -347,14 +347,14 @@ static void filelayout_read_call_done(struct rpc_task *task, void *data) > > static void filelayout_read_count_stats(struct rpc_task *task, void *data) > { > - struct nfs_read_data *rdata = data; > + struct nfs_pgio_data *rdata = data; > > rpc_count_iostats(task, NFS_SERVER(rdata->header->inode)->client->cl_metrics); > } > > static void filelayout_read_release(void *data) > { > - struct nfs_read_data *rdata = data; > + struct nfs_pgio_data *rdata = data; > struct pnfs_layout_hdr *lo = rdata->header->lseg->pls_layout; > > filelayout_fenceme(lo->plh_inode, lo); > @@ -363,7 +363,7 @@ static void filelayout_read_release(void *data) > } > > static int filelayout_write_done_cb(struct rpc_task *task, > - struct nfs_write_data *data) > + struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > int err; > @@ -419,7 +419,7 @@ static int filelayout_commit_done_cb(struct rpc_task *task, > > static void filelayout_write_prepare(struct rpc_task *task, void *data) > { > - struct nfs_write_data *wdata = data; > + struct nfs_pgio_data *wdata = data; > > if (unlikely(test_bit(NFS_CONTEXT_BAD, &wdata->args.context->flags))) { > rpc_exit(task, -EIO); > @@ -443,7 +443,7 @@ static void filelayout_write_prepare(struct rpc_task *task, void *data) > > static void filelayout_write_call_done(struct rpc_task *task, void *data) > { > - struct nfs_write_data *wdata = data; > + struct nfs_pgio_data *wdata = data; > > if (test_bit(NFS_IOHDR_REDO, &wdata->header->flags) && > task->tk_status == 0) { > @@ -457,14 +457,14 @@ static void filelayout_write_call_done(struct rpc_task *task, void *data) > > static void filelayout_write_count_stats(struct rpc_task *task, void *data) > { > - struct nfs_write_data *wdata = data; > + struct nfs_pgio_data *wdata = data; > > rpc_count_iostats(task, NFS_SERVER(wdata->header->inode)->client->cl_metrics); > } > > static void filelayout_write_release(void *data) > { > - struct nfs_write_data *wdata = data; > + struct nfs_pgio_data *wdata = data; > struct pnfs_layout_hdr *lo = wdata->header->lseg->pls_layout; > > filelayout_fenceme(lo->plh_inode, lo); > @@ -529,7 +529,7 @@ static const struct rpc_call_ops filelayout_commit_call_ops = { > }; > > static enum pnfs_try_status > -filelayout_read_pagelist(struct nfs_read_data *data) > +filelayout_read_pagelist(struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > struct pnfs_layout_segment *lseg = hdr->lseg; > @@ -575,7 +575,7 @@ filelayout_read_pagelist(struct nfs_read_data *data) > > /* Perform async writes. */ > static enum pnfs_try_status > -filelayout_write_pagelist(struct nfs_write_data *data, int sync) > +filelayout_write_pagelist(struct nfs_pgio_data *data, int sync) > { > struct nfs_pgio_header *hdr = data->header; > struct pnfs_layout_segment *lseg = hdr->lseg; > @@ -600,7 +600,7 @@ filelayout_write_pagelist(struct nfs_write_data *data, int sync) > __func__, hdr->inode->i_ino, sync, (size_t) data->args.count, > offset, ds->ds_remotestr, atomic_read(&ds->ds_clp->cl_count)); > > - data->write_done_cb = filelayout_write_done_cb; > + data->pgio_done_cb = filelayout_write_done_cb; > atomic_inc(&ds->ds_clp->cl_count); > data->ds_clp = ds->ds_clp; > fh = nfs4_fl_select_ds_fh(lseg, j); > diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c > index 4794ca6..e793aa9 100644 > --- a/fs/nfs/nfs4proc.c > +++ b/fs/nfs/nfs4proc.c > @@ -4033,12 +4033,12 @@ static bool nfs4_error_stateid_expired(int err) > return false; > } > > -void __nfs4_read_done_cb(struct nfs_read_data *data) > +void __nfs4_read_done_cb(struct nfs_pgio_data *data) > { > nfs_invalidate_atime(data->header->inode); > } > > -static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_read_data *data) > +static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct nfs_server *server = NFS_SERVER(data->header->inode); > > @@ -4068,7 +4068,7 @@ static bool nfs4_read_stateid_changed(struct rpc_task *task, > return true; > } > > -static int nfs4_read_done(struct rpc_task *task, struct nfs_read_data *data) > +static int nfs4_read_done(struct rpc_task *task, struct nfs_pgio_data *data) > { > > dprintk("--> %s\n", __func__); > @@ -4077,19 +4077,19 @@ static int nfs4_read_done(struct rpc_task *task, struct nfs_read_data *data) > return -EAGAIN; > if (nfs4_read_stateid_changed(task, &data->args)) > return -EAGAIN; > - return data->read_done_cb ? data->read_done_cb(task, data) : > + return data->pgio_done_cb ? data->pgio_done_cb(task, data) : > nfs4_read_done_cb(task, data); > } > > -static void nfs4_proc_read_setup(struct nfs_read_data *data, struct rpc_message *msg) > +static void nfs4_proc_read_setup(struct nfs_pgio_data *data, struct rpc_message *msg) > { > data->timestamp = jiffies; > - data->read_done_cb = nfs4_read_done_cb; > + data->pgio_done_cb = nfs4_read_done_cb; > msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_READ]; > nfs4_init_sequence(&data->args.seq_args, &data->res.seq_res, 0); > } > > -static int nfs4_proc_read_rpc_prepare(struct rpc_task *task, struct nfs_read_data *data) > +static int nfs4_proc_read_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data) > { > if (nfs4_setup_sequence(NFS_SERVER(data->header->inode), > &data->args.seq_args, > @@ -4104,7 +4104,7 @@ static int nfs4_proc_read_rpc_prepare(struct rpc_task *task, struct nfs_read_dat > return 0; > } > > -static int nfs4_write_done_cb(struct rpc_task *task, struct nfs_write_data *data) > +static int nfs4_write_done_cb(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct inode *inode = data->header->inode; > > @@ -4134,18 +4134,18 @@ static bool nfs4_write_stateid_changed(struct rpc_task *task, > return true; > } > > -static int nfs4_write_done(struct rpc_task *task, struct nfs_write_data *data) > +static int nfs4_write_done(struct rpc_task *task, struct nfs_pgio_data *data) > { > if (!nfs4_sequence_done(task, &data->res.seq_res)) > return -EAGAIN; > if (nfs4_write_stateid_changed(task, &data->args)) > return -EAGAIN; > - return data->write_done_cb ? data->write_done_cb(task, data) : > + return data->pgio_done_cb ? data->pgio_done_cb(task, data) : > nfs4_write_done_cb(task, data); > } > > static > -bool nfs4_write_need_cache_consistency_data(const struct nfs_write_data *data) > +bool nfs4_write_need_cache_consistency_data(const struct nfs_pgio_data *data) > { > const struct nfs_pgio_header *hdr = data->header; > > @@ -4158,7 +4158,7 @@ bool nfs4_write_need_cache_consistency_data(const struct nfs_write_data *data) > return nfs4_have_delegation(hdr->inode, FMODE_READ) == 0; > } > > -static void nfs4_proc_write_setup(struct nfs_write_data *data, struct rpc_message *msg) > +static void nfs4_proc_write_setup(struct nfs_pgio_data *data, struct rpc_message *msg) > { > struct nfs_server *server = NFS_SERVER(data->header->inode); > > @@ -4168,8 +4168,8 @@ static void nfs4_proc_write_setup(struct nfs_write_data *data, struct rpc_messag > } else > data->args.bitmask = server->cache_consistency_bitmask; > > - if (!data->write_done_cb) > - data->write_done_cb = nfs4_write_done_cb; > + if (!data->pgio_done_cb) > + data->pgio_done_cb = nfs4_write_done_cb; > data->res.server = server; > data->timestamp = jiffies; > > @@ -4177,7 +4177,7 @@ static void nfs4_proc_write_setup(struct nfs_write_data *data, struct rpc_messag > nfs4_init_sequence(&data->args.seq_args, &data->res.seq_res, 1); > } > > -static int nfs4_proc_write_rpc_prepare(struct rpc_task *task, struct nfs_write_data *data) > +static int nfs4_proc_write_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data) > { > if (nfs4_setup_sequence(NFS_SERVER(data->header->inode), > &data->args.seq_args, > diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h > index 849cf14..0a744f3 100644 > --- a/fs/nfs/nfs4trace.h > +++ b/fs/nfs/nfs4trace.h > @@ -932,7 +932,7 @@ DEFINE_NFS4_IDMAP_EVENT(nfs4_map_gid_to_group); > > DECLARE_EVENT_CLASS(nfs4_read_event, > TP_PROTO( > - const struct nfs_read_data *data, > + const struct nfs_pgio_data *data, > int error > ), > > @@ -972,7 +972,7 @@ DECLARE_EVENT_CLASS(nfs4_read_event, > #define DEFINE_NFS4_READ_EVENT(name) \ > DEFINE_EVENT(nfs4_read_event, name, \ > TP_PROTO( \ > - const struct nfs_read_data *data, \ > + const struct nfs_pgio_data *data, \ > int error \ > ), \ > TP_ARGS(data, error)) > @@ -983,7 +983,7 @@ DEFINE_NFS4_READ_EVENT(nfs4_pnfs_read); > > DECLARE_EVENT_CLASS(nfs4_write_event, > TP_PROTO( > - const struct nfs_write_data *data, > + const struct nfs_pgio_data *data, > int error > ), > > @@ -1024,7 +1024,7 @@ DECLARE_EVENT_CLASS(nfs4_write_event, > #define DEFINE_NFS4_WRITE_EVENT(name) \ > DEFINE_EVENT(nfs4_write_event, name, \ > TP_PROTO( \ > - const struct nfs_write_data *data, \ > + const struct nfs_pgio_data *data, \ > int error \ > ), \ > TP_ARGS(data, error)) > diff --git a/fs/nfs/objlayout/objio_osd.c b/fs/nfs/objlayout/objio_osd.c > index 5457745..426b366 100644 > --- a/fs/nfs/objlayout/objio_osd.c > +++ b/fs/nfs/objlayout/objio_osd.c > @@ -439,7 +439,7 @@ static void _read_done(struct ore_io_state *ios, void *private) > objlayout_read_done(&objios->oir, status, objios->sync); > } > > -int objio_read_pagelist(struct nfs_read_data *rdata) > +int objio_read_pagelist(struct nfs_pgio_data *rdata) > { > struct nfs_pgio_header *hdr = rdata->header; > struct objio_state *objios; > @@ -487,7 +487,7 @@ static void _write_done(struct ore_io_state *ios, void *private) > static struct page *__r4w_get_page(void *priv, u64 offset, bool *uptodate) > { > struct objio_state *objios = priv; > - struct nfs_write_data *wdata = objios->oir.rpcdata; > + struct nfs_pgio_data *wdata = objios->oir.rpcdata; > struct address_space *mapping = wdata->header->inode->i_mapping; > pgoff_t index = offset / PAGE_SIZE; > struct page *page; > @@ -531,7 +531,7 @@ static const struct _ore_r4w_op _r4w_op = { > .put_page = &__r4w_put_page, > }; > > -int objio_write_pagelist(struct nfs_write_data *wdata, int how) > +int objio_write_pagelist(struct nfs_pgio_data *wdata, int how) > { > struct nfs_pgio_header *hdr = wdata->header; > struct objio_state *objios; > diff --git a/fs/nfs/objlayout/objlayout.c b/fs/nfs/objlayout/objlayout.c > index e4f9cbf..2f955f6 100644 > --- a/fs/nfs/objlayout/objlayout.c > +++ b/fs/nfs/objlayout/objlayout.c > @@ -229,11 +229,11 @@ objlayout_io_set_result(struct objlayout_io_res *oir, unsigned index, > static void _rpc_read_complete(struct work_struct *work) > { > struct rpc_task *task; > - struct nfs_read_data *rdata; > + struct nfs_pgio_data *rdata; > > dprintk("%s enter\n", __func__); > task = container_of(work, struct rpc_task, u.tk_work); > - rdata = container_of(task, struct nfs_read_data, task); > + rdata = container_of(task, struct nfs_pgio_data, task); > > pnfs_ld_read_done(rdata); > } > @@ -241,7 +241,7 @@ static void _rpc_read_complete(struct work_struct *work) > void > objlayout_read_done(struct objlayout_io_res *oir, ssize_t status, bool sync) > { > - struct nfs_read_data *rdata = oir->rpcdata; > + struct nfs_pgio_data *rdata = oir->rpcdata; > > oir->status = rdata->task.tk_status = status; > if (status >= 0) > @@ -266,7 +266,7 @@ objlayout_read_done(struct objlayout_io_res *oir, ssize_t status, bool sync) > * Perform sync or async reads. > */ > enum pnfs_try_status > -objlayout_read_pagelist(struct nfs_read_data *rdata) > +objlayout_read_pagelist(struct nfs_pgio_data *rdata) > { > struct nfs_pgio_header *hdr = rdata->header; > struct inode *inode = hdr->inode; > @@ -312,11 +312,11 @@ objlayout_read_pagelist(struct nfs_read_data *rdata) > static void _rpc_write_complete(struct work_struct *work) > { > struct rpc_task *task; > - struct nfs_write_data *wdata; > + struct nfs_pgio_data *wdata; > > dprintk("%s enter\n", __func__); > task = container_of(work, struct rpc_task, u.tk_work); > - wdata = container_of(task, struct nfs_write_data, task); > + wdata = container_of(task, struct nfs_pgio_data, task); > > pnfs_ld_write_done(wdata); > } > @@ -324,7 +324,7 @@ static void _rpc_write_complete(struct work_struct *work) > void > objlayout_write_done(struct objlayout_io_res *oir, ssize_t status, bool sync) > { > - struct nfs_write_data *wdata = oir->rpcdata; > + struct nfs_pgio_data *wdata = oir->rpcdata; > > oir->status = wdata->task.tk_status = status; > if (status >= 0) { > @@ -351,7 +351,7 @@ objlayout_write_done(struct objlayout_io_res *oir, ssize_t status, bool sync) > * Perform sync or async writes. > */ > enum pnfs_try_status > -objlayout_write_pagelist(struct nfs_write_data *wdata, > +objlayout_write_pagelist(struct nfs_pgio_data *wdata, > int how) > { > struct nfs_pgio_header *hdr = wdata->header; > diff --git a/fs/nfs/objlayout/objlayout.h b/fs/nfs/objlayout/objlayout.h > index 87aa1de..01e0410 100644 > --- a/fs/nfs/objlayout/objlayout.h > +++ b/fs/nfs/objlayout/objlayout.h > @@ -119,8 +119,8 @@ extern void objio_free_lseg(struct pnfs_layout_segment *lseg); > */ > extern void objio_free_result(struct objlayout_io_res *oir); > > -extern int objio_read_pagelist(struct nfs_read_data *rdata); > -extern int objio_write_pagelist(struct nfs_write_data *wdata, int how); > +extern int objio_read_pagelist(struct nfs_pgio_data *rdata); > +extern int objio_write_pagelist(struct nfs_pgio_data *wdata, int how); > > /* > * callback API > @@ -168,10 +168,10 @@ extern struct pnfs_layout_segment *objlayout_alloc_lseg( > extern void objlayout_free_lseg(struct pnfs_layout_segment *); > > extern enum pnfs_try_status objlayout_read_pagelist( > - struct nfs_read_data *); > + struct nfs_pgio_data *); > > extern enum pnfs_try_status objlayout_write_pagelist( > - struct nfs_write_data *, > + struct nfs_pgio_data *, > int how); > > extern void objlayout_encode_layoutcommit( > diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c > index 3d5bc2b..e9cea3a 100644 > --- a/fs/nfs/pnfs.c > +++ b/fs/nfs/pnfs.c > @@ -1492,7 +1492,7 @@ int pnfs_write_done_resend_to_mds(struct inode *inode, > } > EXPORT_SYMBOL_GPL(pnfs_write_done_resend_to_mds); > > -static void pnfs_ld_handle_write_error(struct nfs_write_data *data) > +static void pnfs_ld_handle_write_error(struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > > @@ -1511,7 +1511,7 @@ static void pnfs_ld_handle_write_error(struct nfs_write_data *data) > /* > * Called by non rpc-based layout drivers > */ > -void pnfs_ld_write_done(struct nfs_write_data *data) > +void pnfs_ld_write_done(struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > > @@ -1527,7 +1527,7 @@ EXPORT_SYMBOL_GPL(pnfs_ld_write_done); > > static void > pnfs_write_through_mds(struct nfs_pageio_descriptor *desc, > - struct nfs_write_data *data) > + struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > > @@ -1540,7 +1540,7 @@ pnfs_write_through_mds(struct nfs_pageio_descriptor *desc, > } > > static enum pnfs_try_status > -pnfs_try_to_write_data(struct nfs_write_data *wdata, > +pnfs_try_to_write_data(struct nfs_pgio_data *wdata, > const struct rpc_call_ops *call_ops, > struct pnfs_layout_segment *lseg, > int how) > @@ -1564,7 +1564,7 @@ pnfs_try_to_write_data(struct nfs_write_data *wdata, > static void > pnfs_do_multiple_writes(struct nfs_pageio_descriptor *desc, struct list_head *head, int how) > { > - struct nfs_write_data *data; > + struct nfs_pgio_data *data; > const struct rpc_call_ops *call_ops = desc->pg_rpc_callops; > struct pnfs_layout_segment *lseg = desc->pg_lseg; > > @@ -1572,7 +1572,7 @@ pnfs_do_multiple_writes(struct nfs_pageio_descriptor *desc, struct list_head *he > while (!list_empty(head)) { > enum pnfs_try_status trypnfs; > > - data = list_first_entry(head, struct nfs_write_data, list); > + data = list_first_entry(head, struct nfs_pgio_data, list); > list_del_init(&data->list); > > trypnfs = pnfs_try_to_write_data(data, call_ops, lseg, how); > @@ -1647,7 +1647,7 @@ int pnfs_read_done_resend_to_mds(struct inode *inode, > } > EXPORT_SYMBOL_GPL(pnfs_read_done_resend_to_mds); > > -static void pnfs_ld_handle_read_error(struct nfs_read_data *data) > +static void pnfs_ld_handle_read_error(struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > > @@ -1666,7 +1666,7 @@ static void pnfs_ld_handle_read_error(struct nfs_read_data *data) > /* > * Called by non rpc-based layout drivers > */ > -void pnfs_ld_read_done(struct nfs_read_data *data) > +void pnfs_ld_read_done(struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > > @@ -1682,7 +1682,7 @@ EXPORT_SYMBOL_GPL(pnfs_ld_read_done); > > static void > pnfs_read_through_mds(struct nfs_pageio_descriptor *desc, > - struct nfs_read_data *data) > + struct nfs_pgio_data *data) > { > struct nfs_pgio_header *hdr = data->header; > > @@ -1698,7 +1698,7 @@ pnfs_read_through_mds(struct nfs_pageio_descriptor *desc, > * Call the appropriate parallel I/O subsystem read function. > */ > static enum pnfs_try_status > -pnfs_try_to_read_data(struct nfs_read_data *rdata, > +pnfs_try_to_read_data(struct nfs_pgio_data *rdata, > const struct rpc_call_ops *call_ops, > struct pnfs_layout_segment *lseg) > { > @@ -1722,7 +1722,7 @@ pnfs_try_to_read_data(struct nfs_read_data *rdata, > static void > pnfs_do_multiple_reads(struct nfs_pageio_descriptor *desc, struct list_head *head) > { > - struct nfs_read_data *data; > + struct nfs_pgio_data *data; > const struct rpc_call_ops *call_ops = desc->pg_rpc_callops; > struct pnfs_layout_segment *lseg = desc->pg_lseg; > > @@ -1730,7 +1730,7 @@ pnfs_do_multiple_reads(struct nfs_pageio_descriptor *desc, struct list_head *hea > while (!list_empty(head)) { > enum pnfs_try_status trypnfs; > > - data = list_first_entry(head, struct nfs_read_data, list); > + data = list_first_entry(head, struct nfs_pgio_data, list); > list_del_init(&data->list); > > trypnfs = pnfs_try_to_read_data(data, call_ops, lseg); > @@ -1821,7 +1821,7 @@ void pnfs_set_lo_fail(struct pnfs_layout_segment *lseg) > EXPORT_SYMBOL_GPL(pnfs_set_lo_fail); > > void > -pnfs_set_layoutcommit(struct nfs_write_data *wdata) > +pnfs_set_layoutcommit(struct nfs_pgio_data *wdata) > { > struct nfs_pgio_header *hdr = wdata->header; > struct inode *inode = hdr->inode; > diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h > index 94a9a18..0031267 100644 > --- a/fs/nfs/pnfs.h > +++ b/fs/nfs/pnfs.h > @@ -113,8 +113,8 @@ struct pnfs_layoutdriver_type { > * Return PNFS_ATTEMPTED to indicate the layout code has attempted > * I/O, else return PNFS_NOT_ATTEMPTED to fall back to normal NFS > */ > - enum pnfs_try_status (*read_pagelist) (struct nfs_read_data *nfs_data); > - enum pnfs_try_status (*write_pagelist) (struct nfs_write_data *nfs_data, int how); > + enum pnfs_try_status (*read_pagelist) (struct nfs_pgio_data *nfs_data); > + enum pnfs_try_status (*write_pagelist) (struct nfs_pgio_data *nfs_data, int how); > > void (*free_deviceid_node) (struct nfs4_deviceid_node *); > > @@ -212,13 +212,13 @@ bool pnfs_roc(struct inode *ino); > void pnfs_roc_release(struct inode *ino); > void pnfs_roc_set_barrier(struct inode *ino, u32 barrier); > bool pnfs_roc_drain(struct inode *ino, u32 *barrier, struct rpc_task *task); > -void pnfs_set_layoutcommit(struct nfs_write_data *wdata); > +void pnfs_set_layoutcommit(struct nfs_pgio_data *wdata); > void pnfs_cleanup_layoutcommit(struct nfs4_layoutcommit_data *data); > int pnfs_layoutcommit_inode(struct inode *inode, bool sync); > int _pnfs_return_layout(struct inode *); > int pnfs_commit_and_return_layout(struct inode *); > -void pnfs_ld_write_done(struct nfs_write_data *); > -void pnfs_ld_read_done(struct nfs_read_data *); > +void pnfs_ld_write_done(struct nfs_pgio_data *); > +void pnfs_ld_read_done(struct nfs_pgio_data *); > struct pnfs_layout_segment *pnfs_update_layout(struct inode *ino, > struct nfs_open_context *ctx, > loff_t pos, > diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c > index 8cc227f..c54829e 100644 > --- a/fs/nfs/proc.c > +++ b/fs/nfs/proc.c > @@ -578,7 +578,7 @@ nfs_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle, > return 0; > } > > -static int nfs_read_done(struct rpc_task *task, struct nfs_read_data *data) > +static int nfs_read_done(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct inode *inode = data->header->inode; > > @@ -594,18 +594,18 @@ static int nfs_read_done(struct rpc_task *task, struct nfs_read_data *data) > return 0; > } > > -static void nfs_proc_read_setup(struct nfs_read_data *data, struct rpc_message *msg) > +static void nfs_proc_read_setup(struct nfs_pgio_data *data, struct rpc_message *msg) > { > msg->rpc_proc = &nfs_procedures[NFSPROC_READ]; > } > > -static int nfs_proc_read_rpc_prepare(struct rpc_task *task, struct nfs_read_data *data) > +static int nfs_proc_read_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data) > { > rpc_call_start(task); > return 0; > } > > -static int nfs_write_done(struct rpc_task *task, struct nfs_write_data *data) > +static int nfs_write_done(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct inode *inode = data->header->inode; > > @@ -614,14 +614,14 @@ static int nfs_write_done(struct rpc_task *task, struct nfs_write_data *data) > return 0; > } > > -static void nfs_proc_write_setup(struct nfs_write_data *data, struct rpc_message *msg) > +static void nfs_proc_write_setup(struct nfs_pgio_data *data, struct rpc_message *msg) > { > /* Note: NFSv2 ignores @stable and always uses NFS_FILE_SYNC */ > data->args.stable = NFS_FILE_SYNC; > msg->rpc_proc = &nfs_procedures[NFSPROC_WRITE]; > } > > -static int nfs_proc_write_rpc_prepare(struct rpc_task *task, struct nfs_write_data *data) > +static int nfs_proc_write_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data) > { > rpc_call_start(task); > return 0; > diff --git a/fs/nfs/read.c b/fs/nfs/read.c > index 473bba3..9e426cc 100644 > --- a/fs/nfs/read.c > +++ b/fs/nfs/read.c > @@ -51,10 +51,10 @@ struct nfs_read_header *nfs_readhdr_alloc(void) > } > EXPORT_SYMBOL_GPL(nfs_readhdr_alloc); > > -static struct nfs_read_data *nfs_readdata_alloc(struct nfs_pgio_header *hdr, > +static struct nfs_pgio_data *nfs_readdata_alloc(struct nfs_pgio_header *hdr, > unsigned int pagecount) > { > - struct nfs_read_data *data, *prealloc; > + struct nfs_pgio_data *data, *prealloc; > > prealloc = &container_of(hdr, struct nfs_read_header, header)->rpc_data; > if (prealloc->header == NULL) > @@ -84,7 +84,7 @@ void nfs_readhdr_free(struct nfs_pgio_header *hdr) > } > EXPORT_SYMBOL_GPL(nfs_readhdr_free); > > -void nfs_readdata_release(struct nfs_read_data *rdata) > +void nfs_readdata_release(struct nfs_pgio_data *rdata) > { > struct nfs_pgio_header *hdr = rdata->header; > struct nfs_read_header *read_header = container_of(hdr, struct nfs_read_header, header); > @@ -212,7 +212,7 @@ out: > } > > int nfs_initiate_read(struct rpc_clnt *clnt, > - struct nfs_read_data *data, > + struct nfs_pgio_data *data, > const struct rpc_call_ops *call_ops, int flags) > { > struct inode *inode = data->header->inode; > @@ -255,7 +255,7 @@ EXPORT_SYMBOL_GPL(nfs_initiate_read); > /* > * Set up the NFS read request struct > */ > -static void nfs_read_rpcsetup(struct nfs_read_data *data, > +static void nfs_read_rpcsetup(struct nfs_pgio_data *data, > unsigned int count, unsigned int offset) > { > struct nfs_page *req = data->header->req; > @@ -274,7 +274,7 @@ static void nfs_read_rpcsetup(struct nfs_read_data *data, > nfs_fattr_init(&data->fattr); > } > > -static int nfs_do_read(struct nfs_read_data *data, > +static int nfs_do_read(struct nfs_pgio_data *data, > const struct rpc_call_ops *call_ops) > { > struct inode *inode = data->header->inode; > @@ -286,13 +286,13 @@ static int > nfs_do_multiple_reads(struct list_head *head, > const struct rpc_call_ops *call_ops) > { > - struct nfs_read_data *data; > + struct nfs_pgio_data *data; > int ret = 0; > > while (!list_empty(head)) { > int ret2; > > - data = list_first_entry(head, struct nfs_read_data, list); > + data = list_first_entry(head, struct nfs_pgio_data, list); > list_del_init(&data->list); > > ret2 = nfs_do_read(data, call_ops); > @@ -324,8 +324,8 @@ static void nfs_pagein_error(struct nfs_pageio_descriptor *desc, > { > set_bit(NFS_IOHDR_REDO, &hdr->flags); > while (!list_empty(&hdr->rpc_list)) { > - struct nfs_read_data *data = list_first_entry(&hdr->rpc_list, > - struct nfs_read_data, list); > + struct nfs_pgio_data *data = list_first_entry(&hdr->rpc_list, > + struct nfs_pgio_data, list); > list_del(&data->list); > nfs_readdata_release(data); > } > @@ -350,7 +350,7 @@ static int nfs_pagein_multi(struct nfs_pageio_descriptor *desc, > { > struct nfs_page *req = hdr->req; > struct page *page = req->wb_page; > - struct nfs_read_data *data; > + struct nfs_pgio_data *data; > size_t rsize = desc->pg_bsize, nbytes; > unsigned int offset; > > @@ -382,7 +382,7 @@ static int nfs_pagein_one(struct nfs_pageio_descriptor *desc, > { > struct nfs_page *req; > struct page **pages; > - struct nfs_read_data *data; > + struct nfs_pgio_data *data; > struct list_head *head = &desc->pg_list; > > data = nfs_readdata_alloc(hdr, nfs_page_array_len(desc->pg_base, > @@ -447,7 +447,7 @@ static const struct nfs_pageio_ops nfs_pageio_read_ops = { > * This is the callback from RPC telling us whether a reply was > * received or some error occurred (timeout or socket shutdown). > */ > -int nfs_readpage_result(struct rpc_task *task, struct nfs_read_data *data) > +int nfs_readpage_result(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct inode *inode = data->header->inode; > int status; > @@ -468,7 +468,7 @@ int nfs_readpage_result(struct rpc_task *task, struct nfs_read_data *data) > return 0; > } > > -static void nfs_readpage_retry(struct rpc_task *task, struct nfs_read_data *data) > +static void nfs_readpage_retry(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct nfs_pgio_args *argp = &data->args; > struct nfs_pgio_res *resp = &data->res; > @@ -490,7 +490,7 @@ static void nfs_readpage_retry(struct rpc_task *task, struct nfs_read_data *data > > static void nfs_readpage_result_common(struct rpc_task *task, void *calldata) > { > - struct nfs_read_data *data = calldata; > + struct nfs_pgio_data *data = calldata; > struct nfs_pgio_header *hdr = data->header; > > /* Note the only returns of nfs_readpage_result are 0 and -EAGAIN */ > @@ -520,7 +520,7 @@ static void nfs_readpage_release_common(void *calldata) > > void nfs_read_prepare(struct rpc_task *task, void *calldata) > { > - struct nfs_read_data *data = calldata; > + struct nfs_pgio_data *data = calldata; > int err; > err = NFS_PROTO(data->header->inode)->read_rpc_prepare(task, data); > if (err) > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > index d392a70..3a2fc5c 100644 > --- a/fs/nfs/write.c > +++ b/fs/nfs/write.c > @@ -88,10 +88,10 @@ struct nfs_write_header *nfs_writehdr_alloc(void) > } > EXPORT_SYMBOL_GPL(nfs_writehdr_alloc); > > -static struct nfs_write_data *nfs_writedata_alloc(struct nfs_pgio_header *hdr, > +static struct nfs_pgio_data *nfs_writedata_alloc(struct nfs_pgio_header *hdr, > unsigned int pagecount) > { > - struct nfs_write_data *data, *prealloc; > + struct nfs_pgio_data *data, *prealloc; > > prealloc = &container_of(hdr, struct nfs_write_header, header)->rpc_data; > if (prealloc->header == NULL) > @@ -120,7 +120,7 @@ void nfs_writehdr_free(struct nfs_pgio_header *hdr) > } > EXPORT_SYMBOL_GPL(nfs_writehdr_free); > > -void nfs_writedata_release(struct nfs_write_data *wdata) > +void nfs_writedata_release(struct nfs_pgio_data *wdata) > { > struct nfs_pgio_header *hdr = wdata->header; > struct nfs_write_header *write_header = container_of(hdr, struct nfs_write_header, header); > @@ -582,7 +582,7 @@ nfs_clear_request_commit(struct nfs_page *req) > } > > static inline > -int nfs_write_need_commit(struct nfs_write_data *data) > +int nfs_write_need_commit(struct nfs_pgio_data *data) > { > if (data->verf.committed == NFS_DATA_SYNC) > return data->header->lseg == NULL; > @@ -613,7 +613,7 @@ nfs_clear_request_commit(struct nfs_page *req) > } > > static inline > -int nfs_write_need_commit(struct nfs_write_data *data) > +int nfs_write_need_commit(struct nfs_pgio_data *data) > { > return 0; > } > @@ -990,7 +990,7 @@ static int flush_task_priority(int how) > } > > int nfs_initiate_write(struct rpc_clnt *clnt, > - struct nfs_write_data *data, > + struct nfs_pgio_data *data, > const struct rpc_call_ops *call_ops, > int how, int flags) > { > @@ -1047,7 +1047,7 @@ EXPORT_SYMBOL_GPL(nfs_initiate_write); > /* > * Set up the argument/result storage required for the RPC call. > */ > -static void nfs_write_rpcsetup(struct nfs_write_data *data, > +static void nfs_write_rpcsetup(struct nfs_pgio_data *data, > unsigned int count, unsigned int offset, > int how, struct nfs_commit_info *cinfo) > { > @@ -1082,7 +1082,7 @@ static void nfs_write_rpcsetup(struct nfs_write_data *data, > nfs_fattr_init(&data->fattr); > } > > -static int nfs_do_write(struct nfs_write_data *data, > +static int nfs_do_write(struct nfs_pgio_data *data, > const struct rpc_call_ops *call_ops, > int how) > { > @@ -1095,13 +1095,13 @@ static int nfs_do_multiple_writes(struct list_head *head, > const struct rpc_call_ops *call_ops, > int how) > { > - struct nfs_write_data *data; > + struct nfs_pgio_data *data; > int ret = 0; > > while (!list_empty(head)) { > int ret2; > > - data = list_first_entry(head, struct nfs_write_data, list); > + data = list_first_entry(head, struct nfs_pgio_data, list); > list_del_init(&data->list); > > ret2 = nfs_do_write(data, call_ops, how); > @@ -1144,8 +1144,8 @@ static void nfs_flush_error(struct nfs_pageio_descriptor *desc, > { > set_bit(NFS_IOHDR_REDO, &hdr->flags); > while (!list_empty(&hdr->rpc_list)) { > - struct nfs_write_data *data = list_first_entry(&hdr->rpc_list, > - struct nfs_write_data, list); > + struct nfs_pgio_data *data = list_first_entry(&hdr->rpc_list, > + struct nfs_pgio_data, list); > list_del(&data->list); > nfs_writedata_release(data); > } > @@ -1161,7 +1161,7 @@ static int nfs_flush_multi(struct nfs_pageio_descriptor *desc, > { > struct nfs_page *req = hdr->req; > struct page *page = req->wb_page; > - struct nfs_write_data *data; > + struct nfs_pgio_data *data; > size_t wsize = desc->pg_bsize, nbytes; > unsigned int offset; > int requests = 0; > @@ -1211,7 +1211,7 @@ static int nfs_flush_one(struct nfs_pageio_descriptor *desc, > { > struct nfs_page *req; > struct page **pages; > - struct nfs_write_data *data; > + struct nfs_pgio_data *data; > struct list_head *head = &desc->pg_list; > struct nfs_commit_info cinfo; > > @@ -1305,7 +1305,7 @@ EXPORT_SYMBOL_GPL(nfs_pageio_reset_write_mds); > > void nfs_write_prepare(struct rpc_task *task, void *calldata) > { > - struct nfs_write_data *data = calldata; > + struct nfs_pgio_data *data = calldata; > int err; > err = NFS_PROTO(data->header->inode)->write_rpc_prepare(task, data); > if (err) > @@ -1328,14 +1328,14 @@ void nfs_commit_prepare(struct rpc_task *task, void *calldata) > */ > static void nfs_writeback_done_common(struct rpc_task *task, void *calldata) > { > - struct nfs_write_data *data = calldata; > + struct nfs_pgio_data *data = calldata; > > nfs_writeback_done(task, data); > } > > static void nfs_writeback_release_common(void *calldata) > { > - struct nfs_write_data *data = calldata; > + struct nfs_pgio_data *data = calldata; > struct nfs_pgio_header *hdr = data->header; > int status = data->task.tk_status; > > @@ -1386,7 +1386,7 @@ static int nfs_should_remove_suid(const struct inode *inode) > /* > * This function is called when the WRITE call is complete. > */ > -void nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) > +void nfs_writeback_done(struct rpc_task *task, struct nfs_pgio_data *data) > { > struct nfs_pgio_args *argp = &data->args; > struct nfs_pgio_res *resp = &data->res; > diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h > index fa6918b..7e0db56 100644 > --- a/include/linux/nfs_fs.h > +++ b/include/linux/nfs_fs.h > @@ -520,7 +520,7 @@ extern int nfs_writepage(struct page *page, struct writeback_control *wbc); > extern int nfs_writepages(struct address_space *, struct writeback_control *); > extern int nfs_flush_incompatible(struct file *file, struct page *page); > extern int nfs_updatepage(struct file *, struct page *, unsigned int, unsigned int); > -extern void nfs_writeback_done(struct rpc_task *, struct nfs_write_data *); > +extern void nfs_writeback_done(struct rpc_task *, struct nfs_pgio_data *); > > /* > * Try to write back everything synchronously (but check the > @@ -553,7 +553,7 @@ nfs_have_writebacks(struct inode *inode) > extern int nfs_readpage(struct file *, struct page *); > extern int nfs_readpages(struct file *, struct address_space *, > struct list_head *, unsigned); > -extern int nfs_readpage_result(struct rpc_task *, struct nfs_read_data *); > +extern int nfs_readpage_result(struct rpc_task *, struct nfs_pgio_data *); > extern int nfs_readpage_async(struct nfs_open_context *, struct inode *, > struct page *); > > diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h > index 381f832..64f6f14 100644 > --- a/include/linux/nfs_xdr.h > +++ b/include/linux/nfs_xdr.h > @@ -1247,20 +1247,6 @@ struct nfs_page_array { > struct page *page_array[NFS_PAGEVEC_SIZE]; > }; > > -struct nfs_read_data { > - struct nfs_pgio_header *header; > - struct list_head list; > - struct rpc_task task; > - struct nfs_fattr fattr; /* fattr storage */ > - struct nfs_pgio_args args; > - struct nfs_pgio_res res; > - unsigned long timestamp; /* For lease renewal */ > - int (*read_done_cb) (struct rpc_task *task, struct nfs_read_data *data); > - __u64 mds_offset; > - struct nfs_page_array pages; > - struct nfs_client *ds_clp; /* pNFS data server */ > -}; > - > /* used as flag bits in nfs_pgio_header */ > enum { > NFS_IOHDR_ERROR = 0, > @@ -1293,29 +1279,29 @@ struct nfs_pgio_header { > unsigned long flags; > }; > > -struct nfs_read_header { > - struct nfs_pgio_header header; > - struct nfs_read_data rpc_data; > -}; > - > -struct nfs_write_data { > +struct nfs_pgio_data { > struct nfs_pgio_header *header; > struct list_head list; > struct rpc_task task; > struct nfs_fattr fattr; > - struct nfs_writeverf verf; > + struct nfs_writeverf verf; /* Used for writes */ > struct nfs_pgio_args args; /* argument struct */ > struct nfs_pgio_res res; /* result struct */ > unsigned long timestamp; /* For lease renewal */ > - int (*write_done_cb) (struct rpc_task *task, struct nfs_write_data *data); > + int (*pgio_done_cb) (struct rpc_task *task, struct nfs_pgio_data *data); > __u64 mds_offset; /* Filelayout dense stripe */ > struct nfs_page_array pages; > struct nfs_client *ds_clp; /* pNFS data server */ > }; > > +struct nfs_read_header { > + struct nfs_pgio_header header; > + struct nfs_pgio_data rpc_data; > +}; > + > struct nfs_write_header { > struct nfs_pgio_header header; > - struct nfs_write_data rpc_data; > + struct nfs_pgio_data rpc_data; > struct nfs_writeverf verf; > }; > > @@ -1448,12 +1434,12 @@ struct nfs_rpc_ops { > struct nfs_pathconf *); > int (*set_capabilities)(struct nfs_server *, struct nfs_fh *); > int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, int); > - void (*read_setup) (struct nfs_read_data *, struct rpc_message *); > - int (*read_rpc_prepare)(struct rpc_task *, struct nfs_read_data *); > - int (*read_done) (struct rpc_task *, struct nfs_read_data *); > - void (*write_setup) (struct nfs_write_data *, struct rpc_message *); > - int (*write_rpc_prepare)(struct rpc_task *, struct nfs_write_data *); > - int (*write_done) (struct rpc_task *, struct nfs_write_data *); > + void (*read_setup) (struct nfs_pgio_data *, struct rpc_message *); > + int (*read_rpc_prepare)(struct rpc_task *, struct nfs_pgio_data *); > + int (*read_done) (struct rpc_task *, struct nfs_pgio_data *); > + void (*write_setup) (struct nfs_pgio_data *, struct rpc_message *); > + int (*write_rpc_prepare)(struct rpc_task *, struct nfs_pgio_data *); > + int (*write_done) (struct rpc_task *, struct nfs_pgio_data *); > void (*commit_setup) (struct nfs_commit_data *, struct rpc_message *); > void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *); > int (*commit_done) (struct rpc_task *, struct nfs_commit_data *); Nice cleanup Reviewed-by: Jeff Layton