stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Weston Andros Adamson <dros@primarydata.com>,
	Trond Myklebust <trond.myklebust@primarydata.com>
Subject: [PATCH 3.16 162/357] nfs: merge nfs_pgio_data into _header
Date: Fri,  3 Oct 2014 14:29:08 -0700	[thread overview]
Message-ID: <20141003212938.337402693@linuxfoundation.org> (raw)
In-Reply-To: <20141003212933.458851516@linuxfoundation.org>

3.16-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Weston Andros Adamson <dros@primarydata.com>

commit d45f60c67848b9f19160692581d78e5b4757a000 upstream.

struct nfs_pgio_data only exists as a member of nfs_pgio_header, but is
passed around everywhere, because there used to be multiple _data structs
per _header. Many of these functions then use the _data to find a pointer
to the _header.  This patch cleans this up by merging the nfs_pgio_data
structure into nfs_pgio_header and passing nfs_pgio_header around instead.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Weston Andros Adamson <dros@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/nfs/blocklayout/blocklayout.c |   98 ++++++++++------------
 fs/nfs/direct.c                  |    8 -
 fs/nfs/filelayout/filelayout.c   |  170 ++++++++++++++++++---------------------
 fs/nfs/internal.h                |    6 -
 fs/nfs/nfs3proc.c                |   21 ++--
 fs/nfs/nfs4_fs.h                 |    6 -
 fs/nfs/nfs4proc.c                |  105 ++++++++++++------------
 fs/nfs/nfs4trace.h               |   28 +++---
 fs/nfs/objlayout/objio_osd.c     |   24 ++---
 fs/nfs/objlayout/objlayout.c     |   81 ++++++++----------
 fs/nfs/objlayout/objlayout.h     |    8 -
 fs/nfs/pagelist.c                |  120 +++++++++++++--------------
 fs/nfs/pnfs.c                    |   80 +++++++-----------
 fs/nfs/pnfs.h                    |   10 +-
 fs/nfs/proc.c                    |   27 +++---
 fs/nfs/read.c                    |   42 +++++----
 fs/nfs/write.c                   |   56 ++++++------
 include/linux/nfs_page.h         |    9 +-
 include/linux/nfs_xdr.h          |   43 ++++-----
 19 files changed, 460 insertions(+), 482 deletions(-)

--- a/fs/nfs/blocklayout/blocklayout.c
+++ b/fs/nfs/blocklayout/blocklayout.c
@@ -210,8 +210,7 @@ static void bl_end_io_read(struct bio *b
 			SetPageUptodate(bvec->bv_page);
 
 	if (err) {
-		struct nfs_pgio_data *rdata = par->data;
-		struct nfs_pgio_header *header = rdata->header;
+		struct nfs_pgio_header *header = par->data;
 
 		if (!header->pnfs_error)
 			header->pnfs_error = -EIO;
@@ -224,44 +223,44 @@ static void bl_end_io_read(struct bio *b
 static void bl_read_cleanup(struct work_struct *work)
 {
 	struct rpc_task *task;
-	struct nfs_pgio_data *rdata;
+	struct nfs_pgio_header *hdr;
 	dprintk("%s enter\n", __func__);
 	task = container_of(work, struct rpc_task, u.tk_work);
-	rdata = container_of(task, struct nfs_pgio_data, task);
-	pnfs_ld_read_done(rdata);
+	hdr = container_of(task, struct nfs_pgio_header, task);
+	pnfs_ld_read_done(hdr);
 }
 
 static void
 bl_end_par_io_read(void *data, int unused)
 {
-	struct nfs_pgio_data *rdata = data;
+	struct nfs_pgio_header *hdr = data;
 
-	rdata->task.tk_status = rdata->header->pnfs_error;
-	INIT_WORK(&rdata->task.u.tk_work, bl_read_cleanup);
-	schedule_work(&rdata->task.u.tk_work);
+	hdr->task.tk_status = hdr->pnfs_error;
+	INIT_WORK(&hdr->task.u.tk_work, bl_read_cleanup);
+	schedule_work(&hdr->task.u.tk_work);
 }
 
 static enum pnfs_try_status
-bl_read_pagelist(struct nfs_pgio_data *rdata)
+bl_read_pagelist(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *header = rdata->header;
+	struct nfs_pgio_header *header = hdr;
 	int i, hole;
 	struct bio *bio = NULL;
 	struct pnfs_block_extent *be = NULL, *cow_read = NULL;
 	sector_t isect, extent_length = 0;
 	struct parallel_io *par;
-	loff_t f_offset = rdata->args.offset;
-	size_t bytes_left = rdata->args.count;
+	loff_t f_offset = hdr->args.offset;
+	size_t bytes_left = hdr->args.count;
 	unsigned int pg_offset, pg_len;
-	struct page **pages = rdata->args.pages;
-	int pg_index = rdata->args.pgbase >> PAGE_CACHE_SHIFT;
+	struct page **pages = hdr->args.pages;
+	int pg_index = hdr->args.pgbase >> PAGE_CACHE_SHIFT;
 	const bool is_dio = (header->dreq != NULL);
 
 	dprintk("%s enter nr_pages %u offset %lld count %u\n", __func__,
-		rdata->page_array.npages, f_offset,
-		(unsigned int)rdata->args.count);
+		hdr->page_array.npages, f_offset,
+		(unsigned int)hdr->args.count);
 
-	par = alloc_parallel(rdata);
+	par = alloc_parallel(hdr);
 	if (!par)
 		goto use_mds;
 	par->pnfs_callback = bl_end_par_io_read;
@@ -269,7 +268,7 @@ bl_read_pagelist(struct nfs_pgio_data *r
 
 	isect = (sector_t) (f_offset >> SECTOR_SHIFT);
 	/* Code assumes extents are page-aligned */
-	for (i = pg_index; i < rdata->page_array.npages; i++) {
+	for (i = pg_index; i < hdr->page_array.npages; i++) {
 		if (!extent_length) {
 			/* We've used up the previous extent */
 			bl_put_extent(be);
@@ -319,7 +318,7 @@ bl_read_pagelist(struct nfs_pgio_data *r
 
 			be_read = (hole && cow_read) ? cow_read : be;
 			bio = do_add_page_to_bio(bio,
-						 rdata->page_array.npages - i,
+						 hdr->page_array.npages - i,
 						 READ,
 						 isect, pages[i], be_read,
 						 bl_end_io_read, par,
@@ -334,10 +333,10 @@ bl_read_pagelist(struct nfs_pgio_data *r
 		extent_length -= PAGE_CACHE_SECTORS;
 	}
 	if ((isect << SECTOR_SHIFT) >= header->inode->i_size) {
-		rdata->res.eof = 1;
-		rdata->res.count = header->inode->i_size - rdata->args.offset;
+		hdr->res.eof = 1;
+		hdr->res.count = header->inode->i_size - hdr->args.offset;
 	} else {
-		rdata->res.count = (isect << SECTOR_SHIFT) - rdata->args.offset;
+		hdr->res.count = (isect << SECTOR_SHIFT) - hdr->args.offset;
 	}
 out:
 	bl_put_extent(be);
@@ -392,8 +391,7 @@ static void bl_end_io_write_zero(struct
 	}
 
 	if (unlikely(err)) {
-		struct nfs_pgio_data *data = par->data;
-		struct nfs_pgio_header *header = data->header;
+		struct nfs_pgio_header *header = par->data;
 
 		if (!header->pnfs_error)
 			header->pnfs_error = -EIO;
@@ -407,8 +405,7 @@ static void bl_end_io_write(struct bio *
 {
 	struct parallel_io *par = bio->bi_private;
 	const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags);
-	struct nfs_pgio_data *data = par->data;
-	struct nfs_pgio_header *header = data->header;
+	struct nfs_pgio_header *header = par->data;
 
 	if (!uptodate) {
 		if (!header->pnfs_error)
@@ -425,32 +422,32 @@ static void bl_end_io_write(struct bio *
 static void bl_write_cleanup(struct work_struct *work)
 {
 	struct rpc_task *task;
-	struct nfs_pgio_data *wdata;
+	struct nfs_pgio_header *hdr;
 	dprintk("%s enter\n", __func__);
 	task = container_of(work, struct rpc_task, u.tk_work);
-	wdata = container_of(task, struct nfs_pgio_data, task);
-	if (likely(!wdata->header->pnfs_error)) {
+	hdr = container_of(task, struct nfs_pgio_header, task);
+	if (likely(!hdr->pnfs_error)) {
 		/* Marks for LAYOUTCOMMIT */
-		mark_extents_written(BLK_LSEG2EXT(wdata->header->lseg),
-				     wdata->args.offset, wdata->args.count);
+		mark_extents_written(BLK_LSEG2EXT(hdr->lseg),
+				     hdr->args.offset, hdr->args.count);
 	}
-	pnfs_ld_write_done(wdata);
+	pnfs_ld_write_done(hdr);
 }
 
 /* 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_pgio_data *wdata = data;
+	struct nfs_pgio_header *hdr = data;
 
-	if (unlikely(wdata->header->pnfs_error)) {
-		bl_free_short_extents(&BLK_LSEG2EXT(wdata->header->lseg)->bl_inval,
+	if (unlikely(hdr->pnfs_error)) {
+		bl_free_short_extents(&BLK_LSEG2EXT(hdr->lseg)->bl_inval,
 					num_se);
 	}
 
-	wdata->task.tk_status = wdata->header->pnfs_error;
-	wdata->writeverf.committed = NFS_FILE_SYNC;
-	INIT_WORK(&wdata->task.u.tk_work, bl_write_cleanup);
-	schedule_work(&wdata->task.u.tk_work);
+	hdr->task.tk_status = hdr->pnfs_error;
+	hdr->writeverf.committed = NFS_FILE_SYNC;
+	INIT_WORK(&hdr->task.u.tk_work, bl_write_cleanup);
+	schedule_work(&hdr->task.u.tk_work);
 }
 
 /* FIXME STUB - mark intersection of layout and page as bad, so is not
@@ -675,18 +672,17 @@ check_page:
 }
 
 static enum pnfs_try_status
-bl_write_pagelist(struct nfs_pgio_data *wdata, int sync)
+bl_write_pagelist(struct nfs_pgio_header *header, int sync)
 {
-	struct nfs_pgio_header *header = wdata->header;
 	int i, ret, npg_zero, pg_index, last = 0;
 	struct bio *bio = NULL;
 	struct pnfs_block_extent *be = NULL, *cow_read = NULL;
 	sector_t isect, last_isect = 0, extent_length = 0;
 	struct parallel_io *par = NULL;
-	loff_t offset = wdata->args.offset;
-	size_t count = wdata->args.count;
+	loff_t offset = header->args.offset;
+	size_t count = header->args.count;
 	unsigned int pg_offset, pg_len, saved_len;
-	struct page **pages = wdata->args.pages;
+	struct page **pages = header->args.pages;
 	struct page *page;
 	pgoff_t index;
 	u64 temp;
@@ -701,11 +697,11 @@ bl_write_pagelist(struct nfs_pgio_data *
 		dprintk("pnfsblock nonblock aligned DIO writes. Resend MDS\n");
 		goto out_mds;
 	}
-	/* At this point, wdata->page_aray is a (sequential) list of nfs_pages.
+	/* At this point, header->page_aray is a (sequential) list of nfs_pages.
 	 * We want to write each, and if there is an error set pnfs_error
 	 * to have it redone using nfs.
 	 */
-	par = alloc_parallel(wdata);
+	par = alloc_parallel(header);
 	if (!par)
 		goto out_mds;
 	par->pnfs_callback = bl_end_par_io_write;
@@ -792,8 +788,8 @@ next_page:
 	bio = bl_submit_bio(WRITE, bio);
 
 	/* Middle pages */
-	pg_index = wdata->args.pgbase >> PAGE_CACHE_SHIFT;
-	for (i = pg_index; i < wdata->page_array.npages; i++) {
+	pg_index = header->args.pgbase >> PAGE_CACHE_SHIFT;
+	for (i = pg_index; i < header->page_array.npages; i++) {
 		if (!extent_length) {
 			/* We've used up the previous extent */
 			bl_put_extent(be);
@@ -864,7 +860,7 @@ next_page:
 		}
 
 
-		bio = do_add_page_to_bio(bio, wdata->page_array.npages - i,
+		bio = do_add_page_to_bio(bio, header->page_array.npages - i,
 					 WRITE,
 					 isect, pages[i], be,
 					 bl_end_io_write, par,
@@ -893,7 +889,7 @@ next_page:
 	}
 
 write_done:
-	wdata->res.count = wdata->args.count;
+	header->res.count = header->args.count;
 out:
 	bl_put_extent(be);
 	bl_put_extent(cow_read);
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -148,8 +148,8 @@ static void nfs_direct_set_hdr_verf(stru
 {
 	struct nfs_writeverf *verfp;
 
-	verfp = nfs_direct_select_verf(dreq, hdr->data.ds_clp,
-				      hdr->data.ds_idx);
+	verfp = nfs_direct_select_verf(dreq, hdr->ds_clp,
+				      hdr->ds_idx);
 	WARN_ON_ONCE(verfp->committed >= 0);
 	memcpy(verfp, &hdr->verf, sizeof(struct nfs_writeverf));
 	WARN_ON_ONCE(verfp->committed < 0);
@@ -169,8 +169,8 @@ static int nfs_direct_set_or_cmp_hdr_ver
 {
 	struct nfs_writeverf *verfp;
 
-	verfp = nfs_direct_select_verf(dreq, hdr->data.ds_clp,
-					 hdr->data.ds_idx);
+	verfp = nfs_direct_select_verf(dreq, hdr->ds_clp,
+					 hdr->ds_idx);
 	if (verfp->committed < 0) {
 		nfs_direct_set_hdr_verf(dreq, hdr);
 		return 0;
--- a/fs/nfs/filelayout/filelayout.c
+++ b/fs/nfs/filelayout/filelayout.c
@@ -84,19 +84,18 @@ filelayout_get_dserver_offset(struct pnf
 	BUG();
 }
 
-static void filelayout_reset_write(struct nfs_pgio_data *data)
+static void filelayout_reset_write(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-	struct rpc_task *task = &data->task;
+	struct rpc_task *task = &hdr->task;
 
 	if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) {
 		dprintk("%s Reset task %5u for i/o through MDS "
 			"(req %s/%llu, %u bytes @ offset %llu)\n", __func__,
-			data->task.tk_pid,
+			hdr->task.tk_pid,
 			hdr->inode->i_sb->s_id,
 			(unsigned long long)NFS_FILEID(hdr->inode),
-			data->args.count,
-			(unsigned long long)data->args.offset);
+			hdr->args.count,
+			(unsigned long long)hdr->args.offset);
 
 		task->tk_status = pnfs_write_done_resend_to_mds(hdr->inode,
 							&hdr->pages,
@@ -105,19 +104,18 @@ static void filelayout_reset_write(struc
 	}
 }
 
-static void filelayout_reset_read(struct nfs_pgio_data *data)
+static void filelayout_reset_read(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-	struct rpc_task *task = &data->task;
+	struct rpc_task *task = &hdr->task;
 
 	if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) {
 		dprintk("%s Reset task %5u for i/o through MDS "
 			"(req %s/%llu, %u bytes @ offset %llu)\n", __func__,
-			data->task.tk_pid,
+			hdr->task.tk_pid,
 			hdr->inode->i_sb->s_id,
 			(unsigned long long)NFS_FILEID(hdr->inode),
-			data->args.count,
-			(unsigned long long)data->args.offset);
+			hdr->args.count,
+			(unsigned long long)hdr->args.offset);
 
 		task->tk_status = pnfs_read_done_resend_to_mds(hdr->inode,
 							&hdr->pages,
@@ -243,18 +241,17 @@ wait_on_recovery:
 /* NFS_PROTO call done callback routines */
 
 static int filelayout_read_done_cb(struct rpc_task *task,
-				struct nfs_pgio_data *data)
+				struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
 	int err;
 
-	trace_nfs4_pnfs_read(data, task->tk_status);
-	err = filelayout_async_handle_error(task, data->args.context->state,
-					    data->ds_clp, hdr->lseg);
+	trace_nfs4_pnfs_read(hdr, task->tk_status);
+	err = filelayout_async_handle_error(task, hdr->args.context->state,
+					    hdr->ds_clp, hdr->lseg);
 
 	switch (err) {
 	case -NFS4ERR_RESET_TO_MDS:
-		filelayout_reset_read(data);
+		filelayout_reset_read(hdr);
 		return task->tk_status;
 	case -EAGAIN:
 		rpc_restart_call_prepare(task);
@@ -270,15 +267,14 @@ static int filelayout_read_done_cb(struc
  * rfc5661 is not clear about which credential should be used.
  */
 static void
-filelayout_set_layoutcommit(struct nfs_pgio_data *wdata)
+filelayout_set_layoutcommit(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = wdata->header;
 
 	if (FILELAYOUT_LSEG(hdr->lseg)->commit_through_mds ||
-	    wdata->res.verf->committed == NFS_FILE_SYNC)
+	    hdr->res.verf->committed == NFS_FILE_SYNC)
 		return;
 
-	pnfs_set_layoutcommit(wdata);
+	pnfs_set_layoutcommit(hdr);
 	dprintk("%s inode %lu pls_end_pos %lu\n", __func__, hdr->inode->i_ino,
 		(unsigned long) NFS_I(hdr->inode)->layout->plh_lwb);
 }
@@ -305,83 +301,82 @@ filelayout_reset_to_mds(struct pnfs_layo
  */
 static void filelayout_read_prepare(struct rpc_task *task, void *data)
 {
-	struct nfs_pgio_data *rdata = data;
+	struct nfs_pgio_header *hdr = data;
 
-	if (unlikely(test_bit(NFS_CONTEXT_BAD, &rdata->args.context->flags))) {
+	if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) {
 		rpc_exit(task, -EIO);
 		return;
 	}
-	if (filelayout_reset_to_mds(rdata->header->lseg)) {
+	if (filelayout_reset_to_mds(hdr->lseg)) {
 		dprintk("%s task %u reset io to MDS\n", __func__, task->tk_pid);
-		filelayout_reset_read(rdata);
+		filelayout_reset_read(hdr);
 		rpc_exit(task, 0);
 		return;
 	}
-	rdata->pgio_done_cb = filelayout_read_done_cb;
+	hdr->pgio_done_cb = filelayout_read_done_cb;
 
-	if (nfs41_setup_sequence(rdata->ds_clp->cl_session,
-			&rdata->args.seq_args,
-			&rdata->res.seq_res,
+	if (nfs41_setup_sequence(hdr->ds_clp->cl_session,
+			&hdr->args.seq_args,
+			&hdr->res.seq_res,
 			task))
 		return;
-	if (nfs4_set_rw_stateid(&rdata->args.stateid, rdata->args.context,
-			rdata->args.lock_context, FMODE_READ) == -EIO)
+	if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context,
+			hdr->args.lock_context, FMODE_READ) == -EIO)
 		rpc_exit(task, -EIO); /* lost lock, terminate I/O */
 }
 
 static void filelayout_read_call_done(struct rpc_task *task, void *data)
 {
-	struct nfs_pgio_data *rdata = data;
+	struct nfs_pgio_header *hdr = data;
 
 	dprintk("--> %s task->tk_status %d\n", __func__, task->tk_status);
 
-	if (test_bit(NFS_IOHDR_REDO, &rdata->header->flags) &&
+	if (test_bit(NFS_IOHDR_REDO, &hdr->flags) &&
 	    task->tk_status == 0) {
-		nfs41_sequence_done(task, &rdata->res.seq_res);
+		nfs41_sequence_done(task, &hdr->res.seq_res);
 		return;
 	}
 
 	/* Note this may cause RPC to be resent */
-	rdata->header->mds_ops->rpc_call_done(task, data);
+	hdr->mds_ops->rpc_call_done(task, data);
 }
 
 static void filelayout_read_count_stats(struct rpc_task *task, void *data)
 {
-	struct nfs_pgio_data *rdata = data;
+	struct nfs_pgio_header *hdr = data;
 
-	rpc_count_iostats(task, NFS_SERVER(rdata->header->inode)->client->cl_metrics);
+	rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics);
 }
 
 static void filelayout_read_release(void *data)
 {
-	struct nfs_pgio_data *rdata = data;
-	struct pnfs_layout_hdr *lo = rdata->header->lseg->pls_layout;
+	struct nfs_pgio_header *hdr = data;
+	struct pnfs_layout_hdr *lo = hdr->lseg->pls_layout;
 
 	filelayout_fenceme(lo->plh_inode, lo);
-	nfs_put_client(rdata->ds_clp);
-	rdata->header->mds_ops->rpc_release(data);
+	nfs_put_client(hdr->ds_clp);
+	hdr->mds_ops->rpc_release(data);
 }
 
 static int filelayout_write_done_cb(struct rpc_task *task,
-				struct nfs_pgio_data *data)
+				struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
 	int err;
 
-	trace_nfs4_pnfs_write(data, task->tk_status);
-	err = filelayout_async_handle_error(task, data->args.context->state,
-					    data->ds_clp, hdr->lseg);
+	trace_nfs4_pnfs_write(hdr, task->tk_status);
+	err = filelayout_async_handle_error(task, hdr->args.context->state,
+					    hdr->ds_clp, hdr->lseg);
 
 	switch (err) {
 	case -NFS4ERR_RESET_TO_MDS:
-		filelayout_reset_write(data);
+		filelayout_reset_write(hdr);
 		return task->tk_status;
 	case -EAGAIN:
 		rpc_restart_call_prepare(task);
 		return -EAGAIN;
 	}
 
-	filelayout_set_layoutcommit(data);
+	filelayout_set_layoutcommit(hdr);
 	return 0;
 }
 
@@ -419,57 +414,57 @@ static int filelayout_commit_done_cb(str
 
 static void filelayout_write_prepare(struct rpc_task *task, void *data)
 {
-	struct nfs_pgio_data *wdata = data;
+	struct nfs_pgio_header *hdr = data;
 
-	if (unlikely(test_bit(NFS_CONTEXT_BAD, &wdata->args.context->flags))) {
+	if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags))) {
 		rpc_exit(task, -EIO);
 		return;
 	}
-	if (filelayout_reset_to_mds(wdata->header->lseg)) {
+	if (filelayout_reset_to_mds(hdr->lseg)) {
 		dprintk("%s task %u reset io to MDS\n", __func__, task->tk_pid);
-		filelayout_reset_write(wdata);
+		filelayout_reset_write(hdr);
 		rpc_exit(task, 0);
 		return;
 	}
-	if (nfs41_setup_sequence(wdata->ds_clp->cl_session,
-			&wdata->args.seq_args,
-			&wdata->res.seq_res,
+	if (nfs41_setup_sequence(hdr->ds_clp->cl_session,
+			&hdr->args.seq_args,
+			&hdr->res.seq_res,
 			task))
 		return;
-	if (nfs4_set_rw_stateid(&wdata->args.stateid, wdata->args.context,
-			wdata->args.lock_context, FMODE_WRITE) == -EIO)
+	if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context,
+			hdr->args.lock_context, FMODE_WRITE) == -EIO)
 		rpc_exit(task, -EIO); /* lost lock, terminate I/O */
 }
 
 static void filelayout_write_call_done(struct rpc_task *task, void *data)
 {
-	struct nfs_pgio_data *wdata = data;
+	struct nfs_pgio_header *hdr = data;
 
-	if (test_bit(NFS_IOHDR_REDO, &wdata->header->flags) &&
+	if (test_bit(NFS_IOHDR_REDO, &hdr->flags) &&
 	    task->tk_status == 0) {
-		nfs41_sequence_done(task, &wdata->res.seq_res);
+		nfs41_sequence_done(task, &hdr->res.seq_res);
 		return;
 	}
 
 	/* Note this may cause RPC to be resent */
-	wdata->header->mds_ops->rpc_call_done(task, data);
+	hdr->mds_ops->rpc_call_done(task, data);
 }
 
 static void filelayout_write_count_stats(struct rpc_task *task, void *data)
 {
-	struct nfs_pgio_data *wdata = data;
+	struct nfs_pgio_header *hdr = data;
 
-	rpc_count_iostats(task, NFS_SERVER(wdata->header->inode)->client->cl_metrics);
+	rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics);
 }
 
 static void filelayout_write_release(void *data)
 {
-	struct nfs_pgio_data *wdata = data;
-	struct pnfs_layout_hdr *lo = wdata->header->lseg->pls_layout;
+	struct nfs_pgio_header *hdr = data;
+	struct pnfs_layout_hdr *lo = hdr->lseg->pls_layout;
 
 	filelayout_fenceme(lo->plh_inode, lo);
-	nfs_put_client(wdata->ds_clp);
-	wdata->header->mds_ops->rpc_release(data);
+	nfs_put_client(hdr->ds_clp);
+	hdr->mds_ops->rpc_release(data);
 }
 
 static void filelayout_commit_prepare(struct rpc_task *task, void *data)
@@ -529,19 +524,18 @@ static const struct rpc_call_ops filelay
 };
 
 static enum pnfs_try_status
-filelayout_read_pagelist(struct nfs_pgio_data *data)
+filelayout_read_pagelist(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
 	struct pnfs_layout_segment *lseg = hdr->lseg;
 	struct nfs4_pnfs_ds *ds;
 	struct rpc_clnt *ds_clnt;
-	loff_t offset = data->args.offset;
+	loff_t offset = hdr->args.offset;
 	u32 j, idx;
 	struct nfs_fh *fh;
 
 	dprintk("--> %s ino %lu pgbase %u req %Zu@%llu\n",
 		__func__, hdr->inode->i_ino,
-		data->args.pgbase, (size_t)data->args.count, offset);
+		hdr->args.pgbase, (size_t)hdr->args.count, offset);
 
 	/* Retrieve the correct rpc_client for the byte range */
 	j = nfs4_fl_calc_j_index(lseg, offset);
@@ -559,30 +553,29 @@ filelayout_read_pagelist(struct nfs_pgio
 
 	/* No multipath support. Use first DS */
 	atomic_inc(&ds->ds_clp->cl_count);
-	data->ds_clp = ds->ds_clp;
-	data->ds_idx = idx;
+	hdr->ds_clp = ds->ds_clp;
+	hdr->ds_idx = idx;
 	fh = nfs4_fl_select_ds_fh(lseg, j);
 	if (fh)
-		data->args.fh = fh;
+		hdr->args.fh = fh;
 
-	data->args.offset = filelayout_get_dserver_offset(lseg, offset);
-	data->mds_offset = offset;
+	hdr->args.offset = filelayout_get_dserver_offset(lseg, offset);
+	hdr->mds_offset = offset;
 
 	/* Perform an asynchronous read to ds */
-	nfs_initiate_pgio(ds_clnt, data,
+	nfs_initiate_pgio(ds_clnt, hdr,
 			    &filelayout_read_call_ops, 0, RPC_TASK_SOFTCONN);
 	return PNFS_ATTEMPTED;
 }
 
 /* Perform async writes. */
 static enum pnfs_try_status
-filelayout_write_pagelist(struct nfs_pgio_data *data, int sync)
+filelayout_write_pagelist(struct nfs_pgio_header *hdr, int sync)
 {
-	struct nfs_pgio_header *hdr = data->header;
 	struct pnfs_layout_segment *lseg = hdr->lseg;
 	struct nfs4_pnfs_ds *ds;
 	struct rpc_clnt *ds_clnt;
-	loff_t offset = data->args.offset;
+	loff_t offset = hdr->args.offset;
 	u32 j, idx;
 	struct nfs_fh *fh;
 
@@ -598,21 +591,20 @@ filelayout_write_pagelist(struct nfs_pgi
 		return PNFS_NOT_ATTEMPTED;
 
 	dprintk("%s ino %lu sync %d req %Zu@%llu DS: %s cl_count %d\n",
-		__func__, hdr->inode->i_ino, sync, (size_t) data->args.count,
+		__func__, hdr->inode->i_ino, sync, (size_t) hdr->args.count,
 		offset, ds->ds_remotestr, atomic_read(&ds->ds_clp->cl_count));
 
-	data->pgio_done_cb = filelayout_write_done_cb;
+	hdr->pgio_done_cb = filelayout_write_done_cb;
 	atomic_inc(&ds->ds_clp->cl_count);
-	data->ds_clp = ds->ds_clp;
-	data->ds_idx = idx;
+	hdr->ds_clp = ds->ds_clp;
+	hdr->ds_idx = idx;
 	fh = nfs4_fl_select_ds_fh(lseg, j);
 	if (fh)
-		data->args.fh = fh;
-
-	data->args.offset = filelayout_get_dserver_offset(lseg, offset);
+		hdr->args.fh = fh;
+	hdr->args.offset = filelayout_get_dserver_offset(lseg, offset);
 
 	/* Perform an asynchronous write */
-	nfs_initiate_pgio(ds_clnt, data,
+	nfs_initiate_pgio(ds_clnt, hdr,
 				    &filelayout_write_call_ops, sync,
 				    RPC_TASK_SOFTCONN);
 	return PNFS_ATTEMPTED;
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -240,9 +240,9 @@ int nfs_iocounter_wait(struct nfs_io_cou
 extern const struct nfs_pageio_ops nfs_pgio_rw_ops;
 struct nfs_pgio_header *nfs_pgio_header_alloc(const struct nfs_rw_ops *);
 void nfs_pgio_header_free(struct nfs_pgio_header *);
-void nfs_pgio_data_destroy(struct nfs_pgio_data *);
+void nfs_pgio_data_destroy(struct nfs_pgio_header *);
 int nfs_generic_pgio(struct nfs_pageio_descriptor *, struct nfs_pgio_header *);
-int nfs_initiate_pgio(struct rpc_clnt *, struct nfs_pgio_data *,
+int nfs_initiate_pgio(struct rpc_clnt *, struct nfs_pgio_header *,
 		      const struct rpc_call_ops *, int, int);
 void nfs_free_request(struct nfs_page *req);
 
@@ -482,7 +482,7 @@ static inline void nfs_inode_dio_wait(st
 extern ssize_t nfs_dreq_bytes_left(struct nfs_direct_req *dreq);
 
 /* nfs4proc.c */
-extern void __nfs4_read_done_cb(struct nfs_pgio_data *);
+extern void __nfs4_read_done_cb(struct nfs_pgio_header *);
 extern struct nfs_client *nfs4_init_client(struct nfs_client *clp,
 			    const struct rpc_timeout *timeparms,
 			    const char *ip_addr);
--- a/fs/nfs/nfs3proc.c
+++ b/fs/nfs/nfs3proc.c
@@ -795,41 +795,44 @@ nfs3_proc_pathconf(struct nfs_server *se
 	return status;
 }
 
-static int nfs3_read_done(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs3_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
 {
-	struct inode *inode = data->header->inode;
+	struct inode *inode = hdr->inode;
 
 	if (nfs3_async_handle_jukebox(task, inode))
 		return -EAGAIN;
 
 	nfs_invalidate_atime(inode);
-	nfs_refresh_inode(inode, &data->fattr);
+	nfs_refresh_inode(inode, &hdr->fattr);
 	return 0;
 }
 
-static void nfs3_proc_read_setup(struct nfs_pgio_data *data, struct rpc_message *msg)
+static void nfs3_proc_read_setup(struct nfs_pgio_header *hdr,
+				 struct rpc_message *msg)
 {
 	msg->rpc_proc = &nfs3_procedures[NFS3PROC_READ];
 }
 
-static int nfs3_proc_pgio_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs3_proc_pgio_rpc_prepare(struct rpc_task *task,
+				      struct nfs_pgio_header *hdr)
 {
 	rpc_call_start(task);
 	return 0;
 }
 
-static int nfs3_write_done(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs3_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
 {
-	struct inode *inode = data->header->inode;
+	struct inode *inode = hdr->inode;
 
 	if (nfs3_async_handle_jukebox(task, inode))
 		return -EAGAIN;
 	if (task->tk_status >= 0)
-		nfs_post_op_update_inode_force_wcc(inode, data->res.fattr);
+		nfs_post_op_update_inode_force_wcc(inode, hdr->res.fattr);
 	return 0;
 }
 
-static void nfs3_proc_write_setup(struct nfs_pgio_data *data, struct rpc_message *msg)
+static void nfs3_proc_write_setup(struct nfs_pgio_header *hdr,
+				  struct rpc_message *msg)
 {
 	msg->rpc_proc = &nfs3_procedures[NFS3PROC_WRITE];
 }
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
@@ -337,11 +337,11 @@ nfs4_state_protect(struct nfs_client *cl
  */
 static inline void
 nfs4_state_protect_write(struct nfs_client *clp, struct rpc_clnt **clntp,
-			 struct rpc_message *msg, struct nfs_pgio_data *wdata)
+			 struct rpc_message *msg, struct nfs_pgio_header *hdr)
 {
 	if (_nfs4_state_protect(clp, NFS_SP4_MACH_CRED_WRITE, clntp, msg) &&
 	    !test_bit(NFS_SP4_MACH_CRED_COMMIT, &clp->cl_sp4_flags))
-		wdata->args.stable = NFS_FILE_SYNC;
+		hdr->args.stable = NFS_FILE_SYNC;
 }
 #else /* CONFIG_NFS_v4_1 */
 static inline struct nfs4_session *nfs4_get_session(const struct nfs_server *server)
@@ -369,7 +369,7 @@ nfs4_state_protect(struct nfs_client *cl
 
 static inline void
 nfs4_state_protect_write(struct nfs_client *clp, struct rpc_clnt **clntp,
-			 struct rpc_message *msg, struct nfs_pgio_data *wdata)
+			 struct rpc_message *msg, struct nfs_pgio_header *hdr)
 {
 }
 #endif /* CONFIG_NFS_V4_1 */
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -4041,24 +4041,25 @@ static bool nfs4_error_stateid_expired(i
 	return false;
 }
 
-void __nfs4_read_done_cb(struct nfs_pgio_data *data)
+void __nfs4_read_done_cb(struct nfs_pgio_header *hdr)
 {
-	nfs_invalidate_atime(data->header->inode);
+	nfs_invalidate_atime(hdr->inode);
 }
 
-static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_pgio_header *hdr)
 {
-	struct nfs_server *server = NFS_SERVER(data->header->inode);
+	struct nfs_server *server = NFS_SERVER(hdr->inode);
 
-	trace_nfs4_read(data, task->tk_status);
-	if (nfs4_async_handle_error(task, server, data->args.context->state) == -EAGAIN) {
+	trace_nfs4_read(hdr, task->tk_status);
+	if (nfs4_async_handle_error(task, server,
+				    hdr->args.context->state) == -EAGAIN) {
 		rpc_restart_call_prepare(task);
 		return -EAGAIN;
 	}
 
-	__nfs4_read_done_cb(data);
+	__nfs4_read_done_cb(hdr);
 	if (task->tk_status > 0)
-		renew_lease(server, data->timestamp);
+		renew_lease(server, hdr->timestamp);
 	return 0;
 }
 
@@ -4076,54 +4077,59 @@ static bool nfs4_read_stateid_changed(st
 	return true;
 }
 
-static int nfs4_read_done(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs4_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
 {
 
 	dprintk("--> %s\n", __func__);
 
-	if (!nfs4_sequence_done(task, &data->res.seq_res))
+	if (!nfs4_sequence_done(task, &hdr->res.seq_res))
 		return -EAGAIN;
-	if (nfs4_read_stateid_changed(task, &data->args))
+	if (nfs4_read_stateid_changed(task, &hdr->args))
 		return -EAGAIN;
-	return data->pgio_done_cb ? data->pgio_done_cb(task, data) :
-				    nfs4_read_done_cb(task, data);
+	return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) :
+				    nfs4_read_done_cb(task, hdr);
 }
 
-static void nfs4_proc_read_setup(struct nfs_pgio_data *data, struct rpc_message *msg)
+static void nfs4_proc_read_setup(struct nfs_pgio_header *hdr,
+				 struct rpc_message *msg)
 {
-	data->timestamp   = jiffies;
-	data->pgio_done_cb = nfs4_read_done_cb;
+	hdr->timestamp   = jiffies;
+	hdr->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);
+	nfs4_init_sequence(&hdr->args.seq_args, &hdr->res.seq_res, 0);
 }
 
-static int nfs4_proc_pgio_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs4_proc_pgio_rpc_prepare(struct rpc_task *task,
+				      struct nfs_pgio_header *hdr)
 {
-	if (nfs4_setup_sequence(NFS_SERVER(data->header->inode),
-			&data->args.seq_args,
-			&data->res.seq_res,
+	if (nfs4_setup_sequence(NFS_SERVER(hdr->inode),
+			&hdr->args.seq_args,
+			&hdr->res.seq_res,
 			task))
 		return 0;
-	if (nfs4_set_rw_stateid(&data->args.stateid, data->args.context,
-				data->args.lock_context, data->header->rw_ops->rw_mode) == -EIO)
+	if (nfs4_set_rw_stateid(&hdr->args.stateid, hdr->args.context,
+				hdr->args.lock_context,
+				hdr->rw_ops->rw_mode) == -EIO)
 		return -EIO;
-	if (unlikely(test_bit(NFS_CONTEXT_BAD, &data->args.context->flags)))
+	if (unlikely(test_bit(NFS_CONTEXT_BAD, &hdr->args.context->flags)))
 		return -EIO;
 	return 0;
 }
 
-static int nfs4_write_done_cb(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs4_write_done_cb(struct rpc_task *task,
+			      struct nfs_pgio_header *hdr)
 {
-	struct inode *inode = data->header->inode;
+	struct inode *inode = hdr->inode;
 	
-	trace_nfs4_write(data, task->tk_status);
-	if (nfs4_async_handle_error(task, NFS_SERVER(inode), data->args.context->state) == -EAGAIN) {
+	trace_nfs4_write(hdr, task->tk_status);
+	if (nfs4_async_handle_error(task, NFS_SERVER(inode),
+				    hdr->args.context->state) == -EAGAIN) {
 		rpc_restart_call_prepare(task);
 		return -EAGAIN;
 	}
 	if (task->tk_status >= 0) {
-		renew_lease(NFS_SERVER(inode), data->timestamp);
-		nfs_post_op_update_inode_force_wcc(inode, &data->fattr);
+		renew_lease(NFS_SERVER(inode), hdr->timestamp);
+		nfs_post_op_update_inode_force_wcc(inode, &hdr->fattr);
 	}
 	return 0;
 }
@@ -4142,23 +4148,21 @@ static bool nfs4_write_stateid_changed(s
 	return true;
 }
 
-static int nfs4_write_done(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs4_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
 {
-	if (!nfs4_sequence_done(task, &data->res.seq_res))
+	if (!nfs4_sequence_done(task, &hdr->res.seq_res))
 		return -EAGAIN;
-	if (nfs4_write_stateid_changed(task, &data->args))
+	if (nfs4_write_stateid_changed(task, &hdr->args))
 		return -EAGAIN;
-	return data->pgio_done_cb ? data->pgio_done_cb(task, data) :
-		nfs4_write_done_cb(task, data);
+	return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) :
+		nfs4_write_done_cb(task, hdr);
 }
 
 static
-bool nfs4_write_need_cache_consistency_data(const struct nfs_pgio_data *data)
+bool nfs4_write_need_cache_consistency_data(struct nfs_pgio_header *hdr)
 {
-	const struct nfs_pgio_header *hdr = data->header;
-
 	/* Don't request attributes for pNFS or O_DIRECT writes */
-	if (data->ds_clp != NULL || hdr->dreq != NULL)
+	if (hdr->ds_clp != NULL || hdr->dreq != NULL)
 		return false;
 	/* Otherwise, request attributes if and only if we don't hold
 	 * a delegation
@@ -4166,23 +4170,24 @@ bool nfs4_write_need_cache_consistency_d
 	return nfs4_have_delegation(hdr->inode, FMODE_READ) == 0;
 }
 
-static void nfs4_proc_write_setup(struct nfs_pgio_data *data, struct rpc_message *msg)
+static void nfs4_proc_write_setup(struct nfs_pgio_header *hdr,
+				  struct rpc_message *msg)
 {
-	struct nfs_server *server = NFS_SERVER(data->header->inode);
+	struct nfs_server *server = NFS_SERVER(hdr->inode);
 
-	if (!nfs4_write_need_cache_consistency_data(data)) {
-		data->args.bitmask = NULL;
-		data->res.fattr = NULL;
+	if (!nfs4_write_need_cache_consistency_data(hdr)) {
+		hdr->args.bitmask = NULL;
+		hdr->res.fattr = NULL;
 	} else
-		data->args.bitmask = server->cache_consistency_bitmask;
+		hdr->args.bitmask = server->cache_consistency_bitmask;
 
-	if (!data->pgio_done_cb)
-		data->pgio_done_cb = nfs4_write_done_cb;
-	data->res.server = server;
-	data->timestamp   = jiffies;
+	if (!hdr->pgio_done_cb)
+		hdr->pgio_done_cb = nfs4_write_done_cb;
+	hdr->res.server = server;
+	hdr->timestamp   = jiffies;
 
 	msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_WRITE];
-	nfs4_init_sequence(&data->args.seq_args, &data->res.seq_res, 1);
+	nfs4_init_sequence(&hdr->args.seq_args, &hdr->res.seq_res, 1);
 }
 
 static void nfs4_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data)
--- a/fs/nfs/nfs4trace.h
+++ b/fs/nfs/nfs4trace.h
@@ -932,11 +932,11 @@ DEFINE_NFS4_IDMAP_EVENT(nfs4_map_gid_to_
 
 DECLARE_EVENT_CLASS(nfs4_read_event,
 		TP_PROTO(
-			const struct nfs_pgio_data *data,
+			const struct nfs_pgio_header *hdr,
 			int error
 		),
 
-		TP_ARGS(data, error),
+		TP_ARGS(hdr, error),
 
 		TP_STRUCT__entry(
 			__field(dev_t, dev)
@@ -948,12 +948,12 @@ DECLARE_EVENT_CLASS(nfs4_read_event,
 		),
 
 		TP_fast_assign(
-			const struct inode *inode = data->header->inode;
+			const struct inode *inode = hdr->inode;
 			__entry->dev = inode->i_sb->s_dev;
 			__entry->fileid = NFS_FILEID(inode);
 			__entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
-			__entry->offset = data->args.offset;
-			__entry->count = data->args.count;
+			__entry->offset = hdr->args.offset;
+			__entry->count = hdr->args.count;
 			__entry->error = error;
 		),
 
@@ -972,10 +972,10 @@ DECLARE_EVENT_CLASS(nfs4_read_event,
 #define DEFINE_NFS4_READ_EVENT(name) \
 	DEFINE_EVENT(nfs4_read_event, name, \
 			TP_PROTO( \
-				const struct nfs_pgio_data *data, \
+				const struct nfs_pgio_header *hdr, \
 				int error \
 			), \
-			TP_ARGS(data, error))
+			TP_ARGS(hdr, error))
 DEFINE_NFS4_READ_EVENT(nfs4_read);
 #ifdef CONFIG_NFS_V4_1
 DEFINE_NFS4_READ_EVENT(nfs4_pnfs_read);
@@ -983,11 +983,11 @@ DEFINE_NFS4_READ_EVENT(nfs4_pnfs_read);
 
 DECLARE_EVENT_CLASS(nfs4_write_event,
 		TP_PROTO(
-			const struct nfs_pgio_data *data,
+			const struct nfs_pgio_header *hdr,
 			int error
 		),
 
-		TP_ARGS(data, error),
+		TP_ARGS(hdr, error),
 
 		TP_STRUCT__entry(
 			__field(dev_t, dev)
@@ -999,12 +999,12 @@ DECLARE_EVENT_CLASS(nfs4_write_event,
 		),
 
 		TP_fast_assign(
-			const struct inode *inode = data->header->inode;
+			const struct inode *inode = hdr->inode;
 			__entry->dev = inode->i_sb->s_dev;
 			__entry->fileid = NFS_FILEID(inode);
 			__entry->fhandle = nfs_fhandle_hash(NFS_FH(inode));
-			__entry->offset = data->args.offset;
-			__entry->count = data->args.count;
+			__entry->offset = hdr->args.offset;
+			__entry->count = hdr->args.count;
 			__entry->error = error;
 		),
 
@@ -1024,10 +1024,10 @@ DECLARE_EVENT_CLASS(nfs4_write_event,
 #define DEFINE_NFS4_WRITE_EVENT(name) \
 	DEFINE_EVENT(nfs4_write_event, name, \
 			TP_PROTO( \
-				const struct nfs_pgio_data *data, \
+				const struct nfs_pgio_header *hdr, \
 				int error \
 			), \
-			TP_ARGS(data, error))
+			TP_ARGS(hdr, error))
 DEFINE_NFS4_WRITE_EVENT(nfs4_write);
 #ifdef CONFIG_NFS_V4_1
 DEFINE_NFS4_WRITE_EVENT(nfs4_pnfs_write);
--- a/fs/nfs/objlayout/objio_osd.c
+++ b/fs/nfs/objlayout/objio_osd.c
@@ -439,22 +439,21 @@ static void _read_done(struct ore_io_sta
 	objlayout_read_done(&objios->oir, status, objios->sync);
 }
 
-int objio_read_pagelist(struct nfs_pgio_data *rdata)
+int objio_read_pagelist(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = rdata->header;
 	struct objio_state *objios;
 	int ret;
 
 	ret = objio_alloc_io_state(NFS_I(hdr->inode)->layout, true,
-			hdr->lseg, rdata->args.pages, rdata->args.pgbase,
-			rdata->args.offset, rdata->args.count, rdata,
+			hdr->lseg, hdr->args.pages, hdr->args.pgbase,
+			hdr->args.offset, hdr->args.count, hdr,
 			GFP_KERNEL, &objios);
 	if (unlikely(ret))
 		return ret;
 
 	objios->ios->done = _read_done;
 	dprintk("%s: offset=0x%llx length=0x%x\n", __func__,
-		rdata->args.offset, rdata->args.count);
+		hdr->args.offset, hdr->args.count);
 	ret = ore_read(objios->ios);
 	if (unlikely(ret))
 		objio_free_result(&objios->oir);
@@ -487,11 +486,11 @@ static void _write_done(struct ore_io_st
 static struct page *__r4w_get_page(void *priv, u64 offset, bool *uptodate)
 {
 	struct objio_state *objios = priv;
-	struct nfs_pgio_data *wdata = objios->oir.rpcdata;
-	struct address_space *mapping = wdata->header->inode->i_mapping;
+	struct nfs_pgio_header *hdr = objios->oir.rpcdata;
+	struct address_space *mapping = hdr->inode->i_mapping;
 	pgoff_t index = offset / PAGE_SIZE;
 	struct page *page;
-	loff_t i_size = i_size_read(wdata->header->inode);
+	loff_t i_size = i_size_read(hdr->inode);
 
 	if (offset >= i_size) {
 		*uptodate = true;
@@ -531,15 +530,14 @@ static const struct _ore_r4w_op _r4w_op
 	.put_page = &__r4w_put_page,
 };
 
-int objio_write_pagelist(struct nfs_pgio_data *wdata, int how)
+int objio_write_pagelist(struct nfs_pgio_header *hdr, int how)
 {
-	struct nfs_pgio_header *hdr = wdata->header;
 	struct objio_state *objios;
 	int ret;
 
 	ret = objio_alloc_io_state(NFS_I(hdr->inode)->layout, false,
-			hdr->lseg, wdata->args.pages, wdata->args.pgbase,
-			wdata->args.offset, wdata->args.count, wdata, GFP_NOFS,
+			hdr->lseg, hdr->args.pages, hdr->args.pgbase,
+			hdr->args.offset, hdr->args.count, hdr, GFP_NOFS,
 			&objios);
 	if (unlikely(ret))
 		return ret;
@@ -551,7 +549,7 @@ int objio_write_pagelist(struct nfs_pgio
 		objios->ios->done = _write_done;
 
 	dprintk("%s: offset=0x%llx length=0x%x\n", __func__,
-		wdata->args.offset, wdata->args.count);
+		hdr->args.offset, hdr->args.count);
 	ret = ore_write(objios->ios);
 	if (unlikely(ret)) {
 		objio_free_result(&objios->oir);
--- a/fs/nfs/objlayout/objlayout.c
+++ b/fs/nfs/objlayout/objlayout.c
@@ -229,36 +229,36 @@ objlayout_io_set_result(struct objlayout
 static void _rpc_read_complete(struct work_struct *work)
 {
 	struct rpc_task *task;
-	struct nfs_pgio_data *rdata;
+	struct nfs_pgio_header *hdr;
 
 	dprintk("%s enter\n", __func__);
 	task = container_of(work, struct rpc_task, u.tk_work);
-	rdata = container_of(task, struct nfs_pgio_data, task);
+	hdr = container_of(task, struct nfs_pgio_header, task);
 
-	pnfs_ld_read_done(rdata);
+	pnfs_ld_read_done(hdr);
 }
 
 void
 objlayout_read_done(struct objlayout_io_res *oir, ssize_t status, bool sync)
 {
-	struct nfs_pgio_data *rdata = oir->rpcdata;
+	struct nfs_pgio_header *hdr = oir->rpcdata;
 
-	oir->status = rdata->task.tk_status = status;
+	oir->status = hdr->task.tk_status = status;
 	if (status >= 0)
-		rdata->res.count = status;
+		hdr->res.count = status;
 	else
-		rdata->header->pnfs_error = status;
+		hdr->pnfs_error = status;
 	objlayout_iodone(oir);
 	/* must not use oir after this point */
 
 	dprintk("%s: Return status=%zd eof=%d sync=%d\n", __func__,
-		status, rdata->res.eof, sync);
+		status, hdr->res.eof, sync);
 
 	if (sync)
-		pnfs_ld_read_done(rdata);
+		pnfs_ld_read_done(hdr);
 	else {
-		INIT_WORK(&rdata->task.u.tk_work, _rpc_read_complete);
-		schedule_work(&rdata->task.u.tk_work);
+		INIT_WORK(&hdr->task.u.tk_work, _rpc_read_complete);
+		schedule_work(&hdr->task.u.tk_work);
 	}
 }
 
@@ -266,12 +266,11 @@ objlayout_read_done(struct objlayout_io_
  * Perform sync or async reads.
  */
 enum pnfs_try_status
-objlayout_read_pagelist(struct nfs_pgio_data *rdata)
+objlayout_read_pagelist(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = rdata->header;
 	struct inode *inode = hdr->inode;
-	loff_t offset = rdata->args.offset;
-	size_t count = rdata->args.count;
+	loff_t offset = hdr->args.offset;
+	size_t count = hdr->args.count;
 	int err;
 	loff_t eof;
 
@@ -279,23 +278,23 @@ objlayout_read_pagelist(struct nfs_pgio_
 	if (unlikely(offset + count > eof)) {
 		if (offset >= eof) {
 			err = 0;
-			rdata->res.count = 0;
-			rdata->res.eof = 1;
+			hdr->res.count = 0;
+			hdr->res.eof = 1;
 			/*FIXME: do we need to call pnfs_ld_read_done() */
 			goto out;
 		}
 		count = eof - offset;
 	}
 
-	rdata->res.eof = (offset + count) >= eof;
-	_fix_verify_io_params(hdr->lseg, &rdata->args.pages,
-			      &rdata->args.pgbase,
-			      rdata->args.offset, rdata->args.count);
+	hdr->res.eof = (offset + count) >= eof;
+	_fix_verify_io_params(hdr->lseg, &hdr->args.pages,
+			      &hdr->args.pgbase,
+			      hdr->args.offset, hdr->args.count);
 
 	dprintk("%s: inode(%lx) offset 0x%llx count 0x%Zx eof=%d\n",
-		__func__, inode->i_ino, offset, count, rdata->res.eof);
+		__func__, inode->i_ino, offset, count, hdr->res.eof);
 
-	err = objio_read_pagelist(rdata);
+	err = objio_read_pagelist(hdr);
  out:
 	if (unlikely(err)) {
 		hdr->pnfs_error = err;
@@ -312,38 +311,38 @@ objlayout_read_pagelist(struct nfs_pgio_
 static void _rpc_write_complete(struct work_struct *work)
 {
 	struct rpc_task *task;
-	struct nfs_pgio_data *wdata;
+	struct nfs_pgio_header *hdr;
 
 	dprintk("%s enter\n", __func__);
 	task = container_of(work, struct rpc_task, u.tk_work);
-	wdata = container_of(task, struct nfs_pgio_data, task);
+	hdr = container_of(task, struct nfs_pgio_header, task);
 
-	pnfs_ld_write_done(wdata);
+	pnfs_ld_write_done(hdr);
 }
 
 void
 objlayout_write_done(struct objlayout_io_res *oir, ssize_t status, bool sync)
 {
-	struct nfs_pgio_data *wdata = oir->rpcdata;
+	struct nfs_pgio_header *hdr = oir->rpcdata;
 
-	oir->status = wdata->task.tk_status = status;
+	oir->status = hdr->task.tk_status = status;
 	if (status >= 0) {
-		wdata->res.count = status;
-		wdata->writeverf.committed = oir->committed;
+		hdr->res.count = status;
+		hdr->writeverf.committed = oir->committed;
 	} else {
-		wdata->header->pnfs_error = status;
+		hdr->pnfs_error = status;
 	}
 	objlayout_iodone(oir);
 	/* must not use oir after this point */
 
 	dprintk("%s: Return status %zd committed %d sync=%d\n", __func__,
-		status, wdata->writeverf.committed, sync);
+		status, hdr->writeverf.committed, sync);
 
 	if (sync)
-		pnfs_ld_write_done(wdata);
+		pnfs_ld_write_done(hdr);
 	else {
-		INIT_WORK(&wdata->task.u.tk_work, _rpc_write_complete);
-		schedule_work(&wdata->task.u.tk_work);
+		INIT_WORK(&hdr->task.u.tk_work, _rpc_write_complete);
+		schedule_work(&hdr->task.u.tk_work);
 	}
 }
 
@@ -351,17 +350,15 @@ objlayout_write_done(struct objlayout_io
  * Perform sync or async writes.
  */
 enum pnfs_try_status
-objlayout_write_pagelist(struct nfs_pgio_data *wdata,
-			 int how)
+objlayout_write_pagelist(struct nfs_pgio_header *hdr, int how)
 {
-	struct nfs_pgio_header *hdr = wdata->header;
 	int err;
 
-	_fix_verify_io_params(hdr->lseg, &wdata->args.pages,
-			      &wdata->args.pgbase,
-			      wdata->args.offset, wdata->args.count);
+	_fix_verify_io_params(hdr->lseg, &hdr->args.pages,
+			      &hdr->args.pgbase,
+			      hdr->args.offset, hdr->args.count);
 
-	err = objio_write_pagelist(wdata, how);
+	err = objio_write_pagelist(hdr, how);
 	if (unlikely(err)) {
 		hdr->pnfs_error = err;
 		dprintk("%s: Returned Error %d\n", __func__, err);
--- a/fs/nfs/objlayout/objlayout.h
+++ b/fs/nfs/objlayout/objlayout.h
@@ -119,8 +119,8 @@ extern void objio_free_lseg(struct pnfs_
  */
 extern void objio_free_result(struct objlayout_io_res *oir);
 
-extern int objio_read_pagelist(struct nfs_pgio_data *rdata);
-extern int objio_write_pagelist(struct nfs_pgio_data *wdata, int how);
+extern int objio_read_pagelist(struct nfs_pgio_header *rdata);
+extern int objio_write_pagelist(struct nfs_pgio_header *wdata, int how);
 
 /*
  * callback API
@@ -168,10 +168,10 @@ extern struct pnfs_layout_segment *objla
 extern void objlayout_free_lseg(struct pnfs_layout_segment *);
 
 extern enum pnfs_try_status objlayout_read_pagelist(
-	struct nfs_pgio_data *);
+	struct nfs_pgio_header *);
 
 extern enum pnfs_try_status objlayout_write_pagelist(
-	struct nfs_pgio_data *,
+	struct nfs_pgio_header *,
 	int how);
 
 extern void objlayout_encode_layoutcommit(
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -494,8 +494,7 @@ EXPORT_SYMBOL_GPL(nfs_pgio_header_free);
 static bool nfs_pgio_data_init(struct nfs_pgio_header *hdr,
 			       unsigned int pagecount)
 {
-	if (nfs_pgarray_set(&hdr->data.page_array, pagecount)) {
-		hdr->data.header = hdr;
+	if (nfs_pgarray_set(&hdr->page_array, pagecount)) {
 		atomic_inc(&hdr->refcnt);
 		return true;
 	}
@@ -503,16 +502,14 @@ static bool nfs_pgio_data_init(struct nf
 }
 
 /**
- * nfs_pgio_data_destroy - Properly free pageio data
- * @data: The data to destroy
+ * nfs_pgio_data_destroy - Properly release pageio data
+ * @hdr: The header with data to destroy
  */
-void nfs_pgio_data_destroy(struct nfs_pgio_data *data)
+void nfs_pgio_data_destroy(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-
-	put_nfs_open_context(data->args.context);
-	if (data->page_array.pagevec != data->page_array.page_array)
-		kfree(data->page_array.pagevec);
+	put_nfs_open_context(hdr->args.context);
+	if (hdr->page_array.pagevec != hdr->page_array.page_array)
+		kfree(hdr->page_array.pagevec);
 	if (atomic_dec_and_test(&hdr->refcnt))
 		hdr->completion_ops->completion(hdr);
 }
@@ -520,31 +517,31 @@ EXPORT_SYMBOL_GPL(nfs_pgio_data_destroy)
 
 /**
  * nfs_pgio_rpcsetup - Set up arguments for a pageio call
- * @data: The pageio data
+ * @hdr: The pageio hdr
  * @count: Number of bytes to read
  * @offset: Initial offset
  * @how: How to commit data (writes only)
  * @cinfo: Commit information for the call (writes only)
  */
-static void nfs_pgio_rpcsetup(struct nfs_pgio_data *data,
+static void nfs_pgio_rpcsetup(struct nfs_pgio_header *hdr,
 			      unsigned int count, unsigned int offset,
 			      int how, struct nfs_commit_info *cinfo)
 {
-	struct nfs_page *req = data->header->req;
+	struct nfs_page *req = hdr->req;
 
 	/* Set up the RPC argument and reply structs
-	 * NB: take care not to mess about with data->commit et al. */
+	 * NB: take care not to mess about with hdr->commit et al. */
 
-	data->args.fh     = NFS_FH(data->header->inode);
-	data->args.offset = req_offset(req) + offset;
+	hdr->args.fh     = NFS_FH(hdr->inode);
+	hdr->args.offset = req_offset(req) + offset;
 	/* pnfs_set_layoutcommit needs this */
-	data->mds_offset = data->args.offset;
-	data->args.pgbase = req->wb_pgbase + offset;
-	data->args.pages  = data->page_array.pagevec;
-	data->args.count  = count;
-	data->args.context = get_nfs_open_context(req->wb_context);
-	data->args.lock_context = req->wb_lock_context;
-	data->args.stable  = NFS_UNSTABLE;
+	hdr->mds_offset = hdr->args.offset;
+	hdr->args.pgbase = req->wb_pgbase + offset;
+	hdr->args.pages  = hdr->page_array.pagevec;
+	hdr->args.count  = count;
+	hdr->args.context = get_nfs_open_context(req->wb_context);
+	hdr->args.lock_context = req->wb_lock_context;
+	hdr->args.stable  = NFS_UNSTABLE;
 	switch (how & (FLUSH_STABLE | FLUSH_COND_STABLE)) {
 	case 0:
 		break;
@@ -552,59 +549,60 @@ static void nfs_pgio_rpcsetup(struct nfs
 		if (nfs_reqs_to_commit(cinfo))
 			break;
 	default:
-		data->args.stable = NFS_FILE_SYNC;
+		hdr->args.stable = NFS_FILE_SYNC;
 	}
 
-	data->res.fattr   = &data->fattr;
-	data->res.count   = count;
-	data->res.eof     = 0;
-	data->res.verf    = &data->writeverf;
-	nfs_fattr_init(&data->fattr);
+	hdr->res.fattr   = &hdr->fattr;
+	hdr->res.count   = count;
+	hdr->res.eof     = 0;
+	hdr->res.verf    = &hdr->writeverf;
+	nfs_fattr_init(&hdr->fattr);
 }
 
 /**
- * nfs_pgio_prepare - Prepare pageio data to go over the wire
+ * nfs_pgio_prepare - Prepare pageio hdr to go over the wire
  * @task: The current task
- * @calldata: pageio data to prepare
+ * @calldata: pageio header to prepare
  */
 static void nfs_pgio_prepare(struct rpc_task *task, void *calldata)
 {
-	struct nfs_pgio_data *data = calldata;
+	struct nfs_pgio_header *hdr = calldata;
 	int err;
-	err = NFS_PROTO(data->header->inode)->pgio_rpc_prepare(task, data);
+	err = NFS_PROTO(hdr->inode)->pgio_rpc_prepare(task, hdr);
 	if (err)
 		rpc_exit(task, err);
 }
 
-int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_data *data,
+int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_header *hdr,
 		      const struct rpc_call_ops *call_ops, int how, int flags)
 {
+	struct inode *inode = hdr->inode;
 	struct rpc_task *task;
 	struct rpc_message msg = {
-		.rpc_argp = &data->args,
-		.rpc_resp = &data->res,
-		.rpc_cred = data->header->cred,
+		.rpc_argp = &hdr->args,
+		.rpc_resp = &hdr->res,
+		.rpc_cred = hdr->cred,
 	};
 	struct rpc_task_setup task_setup_data = {
 		.rpc_client = clnt,
-		.task = &data->task,
+		.task = &hdr->task,
 		.rpc_message = &msg,
 		.callback_ops = call_ops,
-		.callback_data = data,
+		.callback_data = hdr,
 		.workqueue = nfsiod_workqueue,
 		.flags = RPC_TASK_ASYNC | flags,
 	};
 	int ret = 0;
 
-	data->header->rw_ops->rw_initiate(data, &msg, &task_setup_data, how);
+	hdr->rw_ops->rw_initiate(hdr, &msg, &task_setup_data, how);
 
 	dprintk("NFS: %5u initiated pgio call "
 		"(req %s/%llu, %u bytes @ offset %llu)\n",
-		data->task.tk_pid,
-		data->header->inode->i_sb->s_id,
-		(unsigned long long)NFS_FILEID(data->header->inode),
-		data->args.count,
-		(unsigned long long)data->args.offset);
+		hdr->task.tk_pid,
+		inode->i_sb->s_id,
+		(unsigned long long)NFS_FILEID(inode),
+		hdr->args.count,
+		(unsigned long long)hdr->args.offset);
 
 	task = rpc_run_task(&task_setup_data);
 	if (IS_ERR(task)) {
@@ -631,21 +629,21 @@ static int nfs_pgio_error(struct nfs_pag
 			  struct nfs_pgio_header *hdr)
 {
 	set_bit(NFS_IOHDR_REDO, &hdr->flags);
-	nfs_pgio_data_destroy(&hdr->data);
+	nfs_pgio_data_destroy(hdr);
 	desc->pg_completion_ops->error_cleanup(&desc->pg_list);
 	return -ENOMEM;
 }
 
 /**
  * nfs_pgio_release - Release pageio data
- * @calldata: The pageio data to release
+ * @calldata: The pageio header to release
  */
 static void nfs_pgio_release(void *calldata)
 {
-	struct nfs_pgio_data *data = calldata;
-	if (data->header->rw_ops->rw_release)
-		data->header->rw_ops->rw_release(data);
-	nfs_pgio_data_destroy(data);
+	struct nfs_pgio_header *hdr = calldata;
+	if (hdr->rw_ops->rw_release)
+		hdr->rw_ops->rw_release(hdr);
+	nfs_pgio_data_destroy(hdr);
 }
 
 /**
@@ -686,22 +684,22 @@ EXPORT_SYMBOL_GPL(nfs_pageio_init);
 /**
  * nfs_pgio_result - Basic pageio error handling
  * @task: The task that ran
- * @calldata: Pageio data to check
+ * @calldata: Pageio header to check
  */
 static void nfs_pgio_result(struct rpc_task *task, void *calldata)
 {
-	struct nfs_pgio_data *data = calldata;
-	struct inode *inode = data->header->inode;
+	struct nfs_pgio_header *hdr = calldata;
+	struct inode *inode = hdr->inode;
 
 	dprintk("NFS: %s: %5u, (status %d)\n", __func__,
 		task->tk_pid, task->tk_status);
 
-	if (data->header->rw_ops->rw_done(task, data, inode) != 0)
+	if (hdr->rw_ops->rw_done(task, hdr, inode) != 0)
 		return;
 	if (task->tk_status < 0)
-		nfs_set_pgio_error(data->header, task->tk_status, data->args.offset);
+		nfs_set_pgio_error(hdr, task->tk_status, hdr->args.offset);
 	else
-		data->header->rw_ops->rw_result(task, data);
+		hdr->rw_ops->rw_result(task, hdr);
 }
 
 /*
@@ -717,7 +715,6 @@ int nfs_generic_pgio(struct nfs_pageio_d
 {
 	struct nfs_page		*req;
 	struct page		**pages;
-	struct nfs_pgio_data	*data;
 	struct list_head *head = &desc->pg_list;
 	struct nfs_commit_info cinfo;
 
@@ -725,9 +722,8 @@ int nfs_generic_pgio(struct nfs_pageio_d
 			   desc->pg_count)))
 		return nfs_pgio_error(desc, hdr);
 
-	data = &hdr->data;
 	nfs_init_cinfo(&cinfo, desc->pg_inode, desc->pg_dreq);
-	pages = data->page_array.pagevec;
+	pages = hdr->page_array.pagevec;
 	while (!list_empty(head)) {
 		req = nfs_list_entry(head->next);
 		nfs_list_remove_request(req);
@@ -740,7 +736,7 @@ int nfs_generic_pgio(struct nfs_pageio_d
 		desc->pg_ioflags &= ~FLUSH_COND_STABLE;
 
 	/* Set up the argument struct */
-	nfs_pgio_rpcsetup(data, desc->pg_count, 0, desc->pg_ioflags, &cinfo);
+	nfs_pgio_rpcsetup(hdr, desc->pg_count, 0, desc->pg_ioflags, &cinfo);
 	desc->pg_rpc_callops = &nfs_pgio_common_ops;
 	return 0;
 }
@@ -761,7 +757,7 @@ static int nfs_generic_pg_pgios(struct n
 	ret = nfs_generic_pgio(desc, hdr);
 	if (ret == 0)
 		ret = nfs_initiate_pgio(NFS_CLIENT(hdr->inode),
-					&hdr->data, desc->pg_rpc_callops,
+					hdr, desc->pg_rpc_callops,
 					desc->pg_ioflags, 0);
 	if (atomic_dec_and_test(&hdr->refcnt))
 		hdr->completion_ops->completion(hdr);
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -1502,9 +1502,8 @@ int pnfs_write_done_resend_to_mds(struct
 }
 EXPORT_SYMBOL_GPL(pnfs_write_done_resend_to_mds);
 
-static void pnfs_ld_handle_write_error(struct nfs_pgio_data *data)
+static void pnfs_ld_handle_write_error(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
 
 	dprintk("pnfs write error = %d\n", hdr->pnfs_error);
 	if (NFS_SERVER(hdr->inode)->pnfs_curr_ld->flags &
@@ -1512,7 +1511,7 @@ static void pnfs_ld_handle_write_error(s
 		pnfs_return_layout(hdr->inode);
 	}
 	if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags))
-		data->task.tk_status = pnfs_write_done_resend_to_mds(hdr->inode,
+		hdr->task.tk_status = pnfs_write_done_resend_to_mds(hdr->inode,
 							&hdr->pages,
 							hdr->completion_ops,
 							hdr->dreq);
@@ -1521,41 +1520,36 @@ static void pnfs_ld_handle_write_error(s
 /*
  * Called by non rpc-based layout drivers
  */
-void pnfs_ld_write_done(struct nfs_pgio_data *data)
+void pnfs_ld_write_done(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-
-	trace_nfs4_pnfs_write(data, hdr->pnfs_error);
+	trace_nfs4_pnfs_write(hdr, hdr->pnfs_error);
 	if (!hdr->pnfs_error) {
-		pnfs_set_layoutcommit(data);
-		hdr->mds_ops->rpc_call_done(&data->task, data);
+		pnfs_set_layoutcommit(hdr);
+		hdr->mds_ops->rpc_call_done(&hdr->task, hdr);
 	} else
-		pnfs_ld_handle_write_error(data);
-	hdr->mds_ops->rpc_release(data);
+		pnfs_ld_handle_write_error(hdr);
+	hdr->mds_ops->rpc_release(hdr);
 }
 EXPORT_SYMBOL_GPL(pnfs_ld_write_done);
 
 static void
 pnfs_write_through_mds(struct nfs_pageio_descriptor *desc,
-		struct nfs_pgio_data *data)
+		struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-
 	if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) {
 		list_splice_tail_init(&hdr->pages, &desc->pg_list);
 		nfs_pageio_reset_write_mds(desc);
 		desc->pg_recoalesce = 1;
 	}
-	nfs_pgio_data_destroy(data);
+	nfs_pgio_data_destroy(hdr);
 }
 
 static enum pnfs_try_status
-pnfs_try_to_write_data(struct nfs_pgio_data *wdata,
+pnfs_try_to_write_data(struct nfs_pgio_header *hdr,
 			const struct rpc_call_ops *call_ops,
 			struct pnfs_layout_segment *lseg,
 			int how)
 {
-	struct nfs_pgio_header *hdr = wdata->header;
 	struct inode *inode = hdr->inode;
 	enum pnfs_try_status trypnfs;
 	struct nfs_server *nfss = NFS_SERVER(inode);
@@ -1563,8 +1557,8 @@ pnfs_try_to_write_data(struct nfs_pgio_d
 	hdr->mds_ops = call_ops;
 
 	dprintk("%s: Writing ino:%lu %u@%llu (how %d)\n", __func__,
-		inode->i_ino, wdata->args.count, wdata->args.offset, how);
-	trypnfs = nfss->pnfs_curr_ld->write_pagelist(wdata, how);
+		inode->i_ino, hdr->args.count, hdr->args.offset, how);
+	trypnfs = nfss->pnfs_curr_ld->write_pagelist(hdr, how);
 	if (trypnfs != PNFS_NOT_ATTEMPTED)
 		nfs_inc_stats(inode, NFSIOS_PNFS_WRITE);
 	dprintk("%s End (trypnfs:%d)\n", __func__, trypnfs);
@@ -1575,15 +1569,14 @@ static void
 pnfs_do_write(struct nfs_pageio_descriptor *desc,
 	      struct nfs_pgio_header *hdr, int how)
 {
-	struct nfs_pgio_data *data = &hdr->data;
 	const struct rpc_call_ops *call_ops = desc->pg_rpc_callops;
 	struct pnfs_layout_segment *lseg = desc->pg_lseg;
 	enum pnfs_try_status trypnfs;
 
 	desc->pg_lseg = NULL;
-	trypnfs = pnfs_try_to_write_data(data, call_ops, lseg, how);
+	trypnfs = pnfs_try_to_write_data(hdr, call_ops, lseg, how);
 	if (trypnfs == PNFS_NOT_ATTEMPTED)
-		pnfs_write_through_mds(desc, data);
+		pnfs_write_through_mds(desc, hdr);
 	pnfs_put_lseg(lseg);
 }
 
@@ -1650,17 +1643,15 @@ int pnfs_read_done_resend_to_mds(struct
 }
 EXPORT_SYMBOL_GPL(pnfs_read_done_resend_to_mds);
 
-static void pnfs_ld_handle_read_error(struct nfs_pgio_data *data)
+static void pnfs_ld_handle_read_error(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-
 	dprintk("pnfs read error = %d\n", hdr->pnfs_error);
 	if (NFS_SERVER(hdr->inode)->pnfs_curr_ld->flags &
 	    PNFS_LAYOUTRET_ON_ERROR) {
 		pnfs_return_layout(hdr->inode);
 	}
 	if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags))
-		data->task.tk_status = pnfs_read_done_resend_to_mds(hdr->inode,
+		hdr->task.tk_status = pnfs_read_done_resend_to_mds(hdr->inode,
 							&hdr->pages,
 							hdr->completion_ops,
 							hdr->dreq);
@@ -1669,43 +1660,38 @@ static void pnfs_ld_handle_read_error(st
 /*
  * Called by non rpc-based layout drivers
  */
-void pnfs_ld_read_done(struct nfs_pgio_data *data)
+void pnfs_ld_read_done(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-
-	trace_nfs4_pnfs_read(data, hdr->pnfs_error);
+	trace_nfs4_pnfs_read(hdr, hdr->pnfs_error);
 	if (likely(!hdr->pnfs_error)) {
-		__nfs4_read_done_cb(data);
-		hdr->mds_ops->rpc_call_done(&data->task, data);
+		__nfs4_read_done_cb(hdr);
+		hdr->mds_ops->rpc_call_done(&hdr->task, hdr);
 	} else
-		pnfs_ld_handle_read_error(data);
-	hdr->mds_ops->rpc_release(data);
+		pnfs_ld_handle_read_error(hdr);
+	hdr->mds_ops->rpc_release(hdr);
 }
 EXPORT_SYMBOL_GPL(pnfs_ld_read_done);
 
 static void
 pnfs_read_through_mds(struct nfs_pageio_descriptor *desc,
-		struct nfs_pgio_data *data)
+		struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-
 	if (!test_and_set_bit(NFS_IOHDR_REDO, &hdr->flags)) {
 		list_splice_tail_init(&hdr->pages, &desc->pg_list);
 		nfs_pageio_reset_read_mds(desc);
 		desc->pg_recoalesce = 1;
 	}
-	nfs_pgio_data_destroy(data);
+	nfs_pgio_data_destroy(hdr);
 }
 
 /*
  * Call the appropriate parallel I/O subsystem read function.
  */
 static enum pnfs_try_status
-pnfs_try_to_read_data(struct nfs_pgio_data *rdata,
+pnfs_try_to_read_data(struct nfs_pgio_header *hdr,
 		       const struct rpc_call_ops *call_ops,
 		       struct pnfs_layout_segment *lseg)
 {
-	struct nfs_pgio_header *hdr = rdata->header;
 	struct inode *inode = hdr->inode;
 	struct nfs_server *nfss = NFS_SERVER(inode);
 	enum pnfs_try_status trypnfs;
@@ -1713,9 +1699,9 @@ pnfs_try_to_read_data(struct nfs_pgio_da
 	hdr->mds_ops = call_ops;
 
 	dprintk("%s: Reading ino:%lu %u@%llu\n",
-		__func__, inode->i_ino, rdata->args.count, rdata->args.offset);
+		__func__, inode->i_ino, hdr->args.count, hdr->args.offset);
 
-	trypnfs = nfss->pnfs_curr_ld->read_pagelist(rdata);
+	trypnfs = nfss->pnfs_curr_ld->read_pagelist(hdr);
 	if (trypnfs != PNFS_NOT_ATTEMPTED)
 		nfs_inc_stats(inode, NFSIOS_PNFS_READ);
 	dprintk("%s End (trypnfs:%d)\n", __func__, trypnfs);
@@ -1725,15 +1711,14 @@ pnfs_try_to_read_data(struct nfs_pgio_da
 static void
 pnfs_do_read(struct nfs_pageio_descriptor *desc, struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_data *data = &hdr->data;
 	const struct rpc_call_ops *call_ops = desc->pg_rpc_callops;
 	struct pnfs_layout_segment *lseg = desc->pg_lseg;
 	enum pnfs_try_status trypnfs;
 
 	desc->pg_lseg = NULL;
-	trypnfs = pnfs_try_to_read_data(data, call_ops, lseg);
+	trypnfs = pnfs_try_to_read_data(hdr, call_ops, lseg);
 	if (trypnfs == PNFS_NOT_ATTEMPTED)
-		pnfs_read_through_mds(desc, data);
+		pnfs_read_through_mds(desc, hdr);
 	pnfs_put_lseg(lseg);
 }
 
@@ -1816,12 +1801,11 @@ void pnfs_set_lo_fail(struct pnfs_layout
 EXPORT_SYMBOL_GPL(pnfs_set_lo_fail);
 
 void
-pnfs_set_layoutcommit(struct nfs_pgio_data *wdata)
+pnfs_set_layoutcommit(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = wdata->header;
 	struct inode *inode = hdr->inode;
 	struct nfs_inode *nfsi = NFS_I(inode);
-	loff_t end_pos = wdata->mds_offset + wdata->res.count;
+	loff_t end_pos = hdr->mds_offset + hdr->res.count;
 	bool mark_as_dirty = false;
 
 	spin_lock(&inode->i_lock);
--- 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_pgio_data *nfs_data);
-	enum pnfs_try_status (*write_pagelist) (struct nfs_pgio_data *nfs_data, int how);
+	enum pnfs_try_status (*read_pagelist)(struct nfs_pgio_header *);
+	enum pnfs_try_status (*write_pagelist)(struct nfs_pgio_header *, int);
 
 	void (*free_deviceid_node) (struct nfs4_deviceid_node *);
 
@@ -213,13 +213,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_pgio_data *wdata);
+void pnfs_set_layoutcommit(struct nfs_pgio_header *);
 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_pgio_data *);
-void pnfs_ld_read_done(struct nfs_pgio_data *);
+void pnfs_ld_write_done(struct nfs_pgio_header *);
+void pnfs_ld_read_done(struct nfs_pgio_header *);
 struct pnfs_layout_segment *pnfs_update_layout(struct inode *ino,
 					       struct nfs_open_context *ctx,
 					       loff_t pos,
--- a/fs/nfs/proc.c
+++ b/fs/nfs/proc.c
@@ -578,46 +578,49 @@ nfs_proc_pathconf(struct nfs_server *ser
 	return 0;
 }
 
-static int nfs_read_done(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
 {
-	struct inode *inode = data->header->inode;
+	struct inode *inode = hdr->inode;
 
 	nfs_invalidate_atime(inode);
 	if (task->tk_status >= 0) {
-		nfs_refresh_inode(inode, data->res.fattr);
+		nfs_refresh_inode(inode, hdr->res.fattr);
 		/* Emulate the eof flag, which isn't normally needed in NFSv2
 		 * as it is guaranteed to always return the file attributes
 		 */
-		if (data->args.offset + data->res.count >= data->res.fattr->size)
-			data->res.eof = 1;
+		if (hdr->args.offset + hdr->res.count >= hdr->res.fattr->size)
+			hdr->res.eof = 1;
 	}
 	return 0;
 }
 
-static void nfs_proc_read_setup(struct nfs_pgio_data *data, struct rpc_message *msg)
+static void nfs_proc_read_setup(struct nfs_pgio_header *hdr,
+				struct rpc_message *msg)
 {
 	msg->rpc_proc = &nfs_procedures[NFSPROC_READ];
 }
 
-static int nfs_proc_pgio_rpc_prepare(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs_proc_pgio_rpc_prepare(struct rpc_task *task,
+				     struct nfs_pgio_header *hdr)
 {
 	rpc_call_start(task);
 	return 0;
 }
 
-static int nfs_write_done(struct rpc_task *task, struct nfs_pgio_data *data)
+static int nfs_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
 {
-	struct inode *inode = data->header->inode;
+	struct inode *inode = hdr->inode;
 
 	if (task->tk_status >= 0)
-		nfs_post_op_update_inode_force_wcc(inode, data->res.fattr);
+		nfs_post_op_update_inode_force_wcc(inode, hdr->res.fattr);
 	return 0;
 }
 
-static void nfs_proc_write_setup(struct nfs_pgio_data *data, struct rpc_message *msg)
+static void nfs_proc_write_setup(struct nfs_pgio_header *hdr,
+				 struct rpc_message *msg)
 {
 	/* Note: NFSv2 ignores @stable and always uses NFS_FILE_SYNC */
-	data->args.stable = NFS_FILE_SYNC;
+	hdr->args.stable = NFS_FILE_SYNC;
 	msg->rpc_proc = &nfs_procedures[NFSPROC_WRITE];
 }
 
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -172,14 +172,15 @@ out:
 	hdr->release(hdr);
 }
 
-static void nfs_initiate_read(struct nfs_pgio_data *data, struct rpc_message *msg,
+static void nfs_initiate_read(struct nfs_pgio_header *hdr,
+			      struct rpc_message *msg,
 			      struct rpc_task_setup *task_setup_data, int how)
 {
-	struct inode *inode = data->header->inode;
+	struct inode *inode = hdr->inode;
 	int swap_flags = IS_SWAPFILE(inode) ? NFS_RPC_SWAPFLAGS : 0;
 
 	task_setup_data->flags |= swap_flags;
-	NFS_PROTO(inode)->read_setup(data, msg);
+	NFS_PROTO(inode)->read_setup(hdr, msg);
 }
 
 static void
@@ -203,14 +204,15 @@ static const struct nfs_pgio_completion_
  * This is the callback from RPC telling us whether a reply was
  * received or some error occurred (timeout or socket shutdown).
  */
-static int nfs_readpage_done(struct rpc_task *task, struct nfs_pgio_data *data,
+static int nfs_readpage_done(struct rpc_task *task,
+			     struct nfs_pgio_header *hdr,
 			     struct inode *inode)
 {
-	int status = NFS_PROTO(inode)->read_done(task, data);
+	int status = NFS_PROTO(inode)->read_done(task, hdr);
 	if (status != 0)
 		return status;
 
-	nfs_add_stats(inode, NFSIOS_SERVERREADBYTES, data->res.count);
+	nfs_add_stats(inode, NFSIOS_SERVERREADBYTES, hdr->res.count);
 
 	if (task->tk_status == -ESTALE) {
 		set_bit(NFS_INO_STALE, &NFS_I(inode)->flags);
@@ -219,34 +221,34 @@ static int nfs_readpage_done(struct rpc_
 	return 0;
 }
 
-static void nfs_readpage_retry(struct rpc_task *task, struct nfs_pgio_data *data)
+static void nfs_readpage_retry(struct rpc_task *task,
+			       struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_args *argp = &data->args;
-	struct nfs_pgio_res  *resp = &data->res;
+	struct nfs_pgio_args *argp = &hdr->args;
+	struct nfs_pgio_res  *resp = &hdr->res;
 
 	/* This is a short read! */
-	nfs_inc_stats(data->header->inode, NFSIOS_SHORTREAD);
+	nfs_inc_stats(hdr->inode, NFSIOS_SHORTREAD);
 	/* Has the server at least made some progress? */
 	if (resp->count == 0) {
-		nfs_set_pgio_error(data->header, -EIO, argp->offset);
+		nfs_set_pgio_error(hdr, -EIO, argp->offset);
 		return;
 	}
-	/* Yes, so retry the read at the end of the data */
-	data->mds_offset += resp->count;
+	/* Yes, so retry the read at the end of the hdr */
+	hdr->mds_offset += resp->count;
 	argp->offset += resp->count;
 	argp->pgbase += resp->count;
 	argp->count -= resp->count;
 	rpc_restart_call_prepare(task);
 }
 
-static void nfs_readpage_result(struct rpc_task *task, struct nfs_pgio_data *data)
+static void nfs_readpage_result(struct rpc_task *task,
+				struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-
-	if (data->res.eof) {
+	if (hdr->res.eof) {
 		loff_t bound;
 
-		bound = data->args.offset + data->res.count;
+		bound = hdr->args.offset + hdr->res.count;
 		spin_lock(&hdr->lock);
 		if (bound < hdr->io_start + hdr->good_bytes) {
 			set_bit(NFS_IOHDR_EOF, &hdr->flags);
@@ -254,8 +256,8 @@ static void nfs_readpage_result(struct r
 			hdr->good_bytes = bound - hdr->io_start;
 		}
 		spin_unlock(&hdr->lock);
-	} else if (data->res.count != data->args.count)
-		nfs_readpage_retry(task, data);
+	} else if (hdr->res.count != hdr->args.count)
+		nfs_readpage_retry(task, hdr);
 }
 
 /*
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -826,11 +826,11 @@ nfs_clear_request_commit(struct nfs_page
 }
 
 static inline
-int nfs_write_need_commit(struct nfs_pgio_data *data)
+int nfs_write_need_commit(struct nfs_pgio_header *hdr)
 {
-	if (data->writeverf.committed == NFS_DATA_SYNC)
-		return data->header->lseg == NULL;
-	return data->writeverf.committed != NFS_FILE_SYNC;
+	if (hdr->writeverf.committed == NFS_DATA_SYNC)
+		return hdr->lseg == NULL;
+	return hdr->writeverf.committed != NFS_FILE_SYNC;
 }
 
 #else
@@ -857,7 +857,7 @@ nfs_clear_request_commit(struct nfs_page
 }
 
 static inline
-int nfs_write_need_commit(struct nfs_pgio_data *data)
+int nfs_write_need_commit(struct nfs_pgio_header *hdr)
 {
 	return 0;
 }
@@ -1241,17 +1241,18 @@ static int flush_task_priority(int how)
 	return RPC_PRIORITY_NORMAL;
 }
 
-static void nfs_initiate_write(struct nfs_pgio_data *data, struct rpc_message *msg,
+static void nfs_initiate_write(struct nfs_pgio_header *hdr,
+			       struct rpc_message *msg,
 			       struct rpc_task_setup *task_setup_data, int how)
 {
-	struct inode *inode = data->header->inode;
+	struct inode *inode = hdr->inode;
 	int priority = flush_task_priority(how);
 
 	task_setup_data->priority = priority;
-	NFS_PROTO(inode)->write_setup(data, msg);
+	NFS_PROTO(inode)->write_setup(hdr, msg);
 
 	nfs4_state_protect_write(NFS_SERVER(inode)->nfs_client,
-				 &task_setup_data->rpc_client, msg, data);
+				 &task_setup_data->rpc_client, msg, hdr);
 }
 
 /* If a nfs_flush_* function fails, it should remove reqs from @head and
@@ -1313,19 +1314,17 @@ void nfs_commit_prepare(struct rpc_task
 	NFS_PROTO(data->inode)->commit_rpc_prepare(task, data);
 }
 
-static void nfs_writeback_release_common(struct nfs_pgio_data *data)
+static void nfs_writeback_release_common(struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_header *hdr = data->header;
-	int status = data->task.tk_status;
+	int status = hdr->task.tk_status;
 
-	if ((status >= 0) && nfs_write_need_commit(data)) {
+	if ((status >= 0) && nfs_write_need_commit(hdr)) {
 		spin_lock(&hdr->lock);
 		if (test_bit(NFS_IOHDR_NEED_RESCHED, &hdr->flags))
 			; /* Do nothing */
 		else if (!test_and_set_bit(NFS_IOHDR_NEED_COMMIT, &hdr->flags))
-			memcpy(&hdr->verf, &data->writeverf, sizeof(hdr->verf));
-		else if (memcmp(&hdr->verf, &data->writeverf,
-			 sizeof(hdr->verf)))
+			memcpy(&hdr->verf, &hdr->writeverf, sizeof(hdr->verf));
+		else if (memcmp(&hdr->verf, &hdr->writeverf, sizeof(hdr->verf)))
 			set_bit(NFS_IOHDR_NEED_RESCHED, &hdr->flags);
 		spin_unlock(&hdr->lock);
 	}
@@ -1359,7 +1358,8 @@ static int nfs_should_remove_suid(const
 /*
  * This function is called when the WRITE call is complete.
  */
-static int nfs_writeback_done(struct rpc_task *task, struct nfs_pgio_data *data,
+static int nfs_writeback_done(struct rpc_task *task,
+			      struct nfs_pgio_header *hdr,
 			      struct inode *inode)
 {
 	int status;
@@ -1371,13 +1371,14 @@ static int nfs_writeback_done(struct rpc
 	 * another writer had changed the file, but some applications
 	 * depend on tighter cache coherency when writing.
 	 */
-	status = NFS_PROTO(inode)->write_done(task, data);
+	status = NFS_PROTO(inode)->write_done(task, hdr);
 	if (status != 0)
 		return status;
-	nfs_add_stats(inode, NFSIOS_SERVERWRITTENBYTES, data->res.count);
+	nfs_add_stats(inode, NFSIOS_SERVERWRITTENBYTES, hdr->res.count);
 
 #if IS_ENABLED(CONFIG_NFS_V3) || IS_ENABLED(CONFIG_NFS_V4)
-	if (data->res.verf->committed < data->args.stable && task->tk_status >= 0) {
+	if (hdr->res.verf->committed < hdr->args.stable &&
+	    task->tk_status >= 0) {
 		/* We tried a write call, but the server did not
 		 * commit data to stable storage even though we
 		 * requested it.
@@ -1393,7 +1394,7 @@ static int nfs_writeback_done(struct rpc
 			dprintk("NFS:       faulty NFS server %s:"
 				" (committed = %d) != (stable = %d)\n",
 				NFS_SERVER(inode)->nfs_client->cl_hostname,
-				data->res.verf->committed, data->args.stable);
+				hdr->res.verf->committed, hdr->args.stable);
 			complain = jiffies + 300 * HZ;
 		}
 	}
@@ -1408,16 +1409,17 @@ static int nfs_writeback_done(struct rpc
 /*
  * This function is called when the WRITE call is complete.
  */
-static void nfs_writeback_result(struct rpc_task *task, struct nfs_pgio_data *data)
+static void nfs_writeback_result(struct rpc_task *task,
+				 struct nfs_pgio_header *hdr)
 {
-	struct nfs_pgio_args	*argp = &data->args;
-	struct nfs_pgio_res	*resp = &data->res;
+	struct nfs_pgio_args	*argp = &hdr->args;
+	struct nfs_pgio_res	*resp = &hdr->res;
 
 	if (resp->count < argp->count) {
 		static unsigned long    complain;
 
 		/* This a short write! */
-		nfs_inc_stats(data->header->inode, NFSIOS_SHORTWRITE);
+		nfs_inc_stats(hdr->inode, NFSIOS_SHORTWRITE);
 
 		/* Has the server at least made some progress? */
 		if (resp->count == 0) {
@@ -1427,14 +1429,14 @@ static void nfs_writeback_result(struct
 				       argp->count);
 				complain = jiffies + 300 * HZ;
 			}
-			nfs_set_pgio_error(data->header, -EIO, argp->offset);
+			nfs_set_pgio_error(hdr, -EIO, argp->offset);
 			task->tk_status = -EIO;
 			return;
 		}
 		/* Was this an NFSv2 write or an NFSv3 stable write? */
 		if (resp->verf->committed != NFS_UNSTABLE) {
 			/* Resend from where the server left off */
-			data->mds_offset += resp->count;
+			hdr->mds_offset += resp->count;
 			argp->offset += resp->count;
 			argp->pgbase += resp->count;
 			argp->count -= resp->count;
--- a/include/linux/nfs_page.h
+++ b/include/linux/nfs_page.h
@@ -64,10 +64,11 @@ struct nfs_rw_ops {
 	const fmode_t rw_mode;
 	struct nfs_pgio_header *(*rw_alloc_header)(void);
 	void (*rw_free_header)(struct nfs_pgio_header *);
-	void (*rw_release)(struct nfs_pgio_data *);
-	int  (*rw_done)(struct rpc_task *, struct nfs_pgio_data *, struct inode *);
-	void (*rw_result)(struct rpc_task *, struct nfs_pgio_data *);
-	void (*rw_initiate)(struct nfs_pgio_data *, struct rpc_message *,
+	void (*rw_release)(struct nfs_pgio_header *);
+	int  (*rw_done)(struct rpc_task *, struct nfs_pgio_header *,
+			struct inode *);
+	void (*rw_result)(struct rpc_task *, struct nfs_pgio_header *);
+	void (*rw_initiate)(struct nfs_pgio_header *, struct rpc_message *,
 			    struct rpc_task_setup *, int);
 };
 
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -1257,27 +1257,10 @@ enum {
 	NFS_IOHDR_NEED_RESCHED,
 };
 
-struct nfs_pgio_data {
-	struct nfs_pgio_header	*header;
-	struct list_head	list;
-	struct rpc_task		task;
-	struct nfs_fattr	fattr;
-	struct nfs_writeverf	writeverf;	/* Used for writes */
-	struct nfs_pgio_args	args;		/* argument struct */
-	struct nfs_pgio_res	res;		/* result struct */
-	unsigned long		timestamp;	/* For lease renewal */
-	int (*pgio_done_cb)(struct rpc_task *task, struct nfs_pgio_data *data);
-	__u64			mds_offset;	/* Filelayout dense stripe */
-	struct nfs_page_array	page_array;
-	struct nfs_client	*ds_clp;	/* pNFS data server */
-	int			ds_idx;		/* ds index if ds_clp is set */
-};
-
 struct nfs_pgio_header {
 	struct inode		*inode;
 	struct rpc_cred		*cred;
 	struct list_head	pages;
-	struct nfs_pgio_data	data;
 	atomic_t		refcnt;
 	struct nfs_page		*req;
 	struct nfs_writeverf	verf;		/* Used for writes */
@@ -1295,6 +1278,21 @@ struct nfs_pgio_header {
 	int			error;		/* merge with pnfs_error */
 	unsigned long		good_bytes;	/* boundary of good data */
 	unsigned long		flags;
+
+	/*
+	 * rpc data
+	 */
+	struct rpc_task		task;
+	struct nfs_fattr	fattr;
+	struct nfs_writeverf	writeverf;	/* Used for writes */
+	struct nfs_pgio_args	args;		/* argument struct */
+	struct nfs_pgio_res	res;		/* result struct */
+	unsigned long		timestamp;	/* For lease renewal */
+	int (*pgio_done_cb)(struct rpc_task *, struct nfs_pgio_header *);
+	__u64			mds_offset;	/* Filelayout dense stripe */
+	struct nfs_page_array	page_array;
+	struct nfs_client	*ds_clp;	/* pNFS data server */
+	int			ds_idx;		/* ds index if ds_clp is set */
 };
 
 struct nfs_mds_commit_info {
@@ -1426,11 +1424,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);
-	int	(*pgio_rpc_prepare)(struct rpc_task *, struct nfs_pgio_data *);
-	void	(*read_setup)   (struct nfs_pgio_data *, struct rpc_message *);
-	int	(*read_done)  (struct rpc_task *, struct nfs_pgio_data *);
-	void	(*write_setup)  (struct nfs_pgio_data *, struct rpc_message *);
-	int	(*write_done)  (struct rpc_task *, struct nfs_pgio_data *);
+	int	(*pgio_rpc_prepare)(struct rpc_task *,
+				    struct nfs_pgio_header *);
+	void	(*read_setup)(struct nfs_pgio_header *, struct rpc_message *);
+	int	(*read_done)(struct rpc_task *, struct nfs_pgio_header *);
+	void	(*write_setup)(struct nfs_pgio_header *, struct rpc_message *);
+	int	(*write_done)(struct rpc_task *, struct nfs_pgio_header *);
 	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 *);



  parent reply	other threads:[~2014-10-03 21:29 UTC|newest]

Thread overview: 329+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-03 21:26 [PATCH 3.16 000/357] 3.16.4-stable review Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 001/357] module: Clean up ro/nx after early module load failures Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 002/357] cpufreq: OPP: Avoid sleeping while atomic Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 003/357] carl9170: fix sending URBs with wrong type when using full-speed Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 004/357] drm/tegra: add MODULE_DEVICE_TABLEs Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 012/357] drm/ttm: Fix possible division by 0 in ttm_dma_pool_shrink_scan() Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 013/357] drm/ttm: Choose a pool to shrink correctly " Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 014/357] drm/ttm: Use mutex_trylock() to avoid deadlock inside shrinker functions Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 015/357] drm/ttm: Fix possible stack overflow by recursive shrinker calls Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 016/357] drm/ttm: Pass GFP flags in order to avoid deadlock Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 017/357] drm/radeon/dpm: handle voltage info fetching on hawaii Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 018/357] drm/radeon: re-enable dpm by default on cayman Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 019/357] drm/radeon: re-enable dpm by default on BTC Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 020/357] drm/radeon: load the lm63 driver for an lm64 thermal chip Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 022/357] drm/radeon/atom: add new voltage fetch function for hawaii Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 023/357] drm/radeon: tweak ACCEL_WORKING2 query " Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 024/357] drm/i915: Fix crash when failing to parse MIPI VBT Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 025/357] drm/i915: read HEAD register back in init_ring_common() to enforce ordering Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 026/357] drm/i915: Disable RCS flips on Ivybridge Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 027/357] of: Allow mem_reserve of memory with a base address of zero Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 028/357] of/irq: Fix lookup to use interrupts-extended property first Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 029/357] libata: widen Crucial M550 blacklist matching Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 030/357] pata_scc: propagate return value of scc_wait_after_reset Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 031/357] ahci: Add Device IDs for Intel 9 Series PCH Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 032/357] ahci: add pcid for Marvel 0x9182 controller Greg Kroah-Hartman
2014-10-03 21:26 ` [PATCH 3.16 033/357] pwm: Fix period and polarity in pwm_get() for non-perfect matches Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 034/357] ibmveth: Fix endian issues with rx_no_buffer statistic Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 035/357] aio: fix reqs_available handling Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 036/357] aio: add missing smp_rmb() in read_events_ring Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 037/357] ARM: imx: fix TLB missing of IOMUXC base address during suspend Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 038/357] ARM: dts: vf610-twr: Fix pinctrl_esdhc1 pin definitions Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 040/357] arm64: flush TLS registers during exec Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 041/357] arm64: use irq_set_affinity with force=false when migrating irqs Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 042/357] arm/arm64: KVM: Complete WFI/WFE instructions Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 043/357] ARM/ARM64: KVM: Nuke Hyp-mode tlbs before enabling MMU Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 044/357] i2c: rk3x: fix bug that cause transfer fails in master receive mode Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 045/357] i2c: mv64xxx: continue probe when clock-frequency is missing Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 046/357] i2c: at91: add bound checking on SMBus block length bytes Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 047/357] i2c: at91: Fix a race condition during signal handling in at91_do_twi_xfer Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 048/357] Revert "i2c: rcar: remove spinlock" Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 049/357] i2c: rcar: fix MNR interrupt handling Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 050/357] i2c: rcar: fix RCAR_IRQ_ACK_{RECV|SEND} Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 051/357] i2c: rk3x: fix divisor calculation for SCL frequency Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 052/357] i2c: ismt: use correct length when copy buffer Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 053/357] ftrace: Use current addr when converting to nop in __ftrace_replace_code() Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 054/357] trace: Fix epoll hang when we race with new entries Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 055/357] arm64: ptrace: fix compat hardware watchpoint reporting Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 056/357] ALSA: core: fix buffer overflow in snd_info_get_line() Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 057/357] ALSA: dice: fix wrong channel mappping at higher sampling rate Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 058/357] ALSA: firewire-lib/dice: add arrangements of PCM pointer and interrupts for Dice quirk Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 059/357] ALSA: hda - Fix digital mic on Acer Aspire 3830TG Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 060/357] ALSA: hda - Fix COEF setups for ALC1150 codec Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 061/357] ALSA: hda - Fix invalid pin powermap without jack detection Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 062/357] ALSA: hda - Add fixup model name lookup for Lemote A1205 Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 063/357] ALSA: pcm: fix fifo_size frame calculation Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 064/357] cfq-iosched: Fix wrong children_weight calculation Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 065/357] HID: picolcd: sanity check report size in raw_event() callback Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 066/357] HID: magicmouse: " Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 067/357] HID: logitech-dj: prevent false errors to be shown Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 068/357] xattr: fix check for simultaneous glibc header inclusion Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 073/357] drm/i915: Ignore VBT backlight presence check on Acer C720 (4005U) Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 074/357] drm/i915: Remove bogus __init annotation from DMI callbacks Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 076/357] drm/i915: Fix EIO/wedged handling in gem fault handler Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 078/357] drm/i915/hdmi: fix hdmi audio state readout Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 079/357] drm/i915: Dont leak command parser tables on suspend/resume Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 080/357] drm/ast: open key before detect chips Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 081/357] drm/ast: AST2000 cannot be detected correctly Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 082/357] imx-drm: ipuv3-plane: fix ipu_plane_dpms() Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 083/357] imx-drm: imx-ldb: fix NULL pointer in imx_ldb_unbind() Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 084/357] drm/vmwgfx: Fix a potential infinite spin waiting for fifo idle Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 086/357] drm/radeon: Add missing lines to ci_set_thermal_temperature_range Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 087/357] drm/radeon/dpm: select the appropriate vce power state for KV/KB/ML Greg Kroah-Hartman
2014-10-03 21:27 ` [PATCH 3.16 092/357] drm/radeon: handle broken disabled rb mask gracefully (6xx/7xx) (v2) Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 094/357] drm/radeon/dpm: set the thermal type properly for special configs Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 095/357] drm/radeon: add connector quirk for fujitsu board Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 099/357] drm/radeon/dpm: fix resume on mullins Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 101/357] xtensa: replace IOCTL code definitions with constants Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 102/357] xtensa: fix address checks in dma_{alloc,free}_coherent Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 103/357] xtensa: fix access to THREAD_RA/THREAD_SP/THREAD_DS Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 104/357] xtensa: fix TLBTEMP_BASE_2 region handling in fast_second_level_miss Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 105/357] xtensa: fix a6 and a7 handling in fast_syscall_xtensa Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 106/357] locks: pass correct "before" pointer to locks_unlink_lock in generic_add_lease Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 107/357] ufs: fix deadlocks introduced by sb mutex merge Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 108/357] usb: gadget: f_rndis: fix interface id for OS descriptors Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 109/357] USB: serial: pl2303: add device id for ztek device Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 110/357] USB: serial: fix potential stack buffer overflow Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 111/357] USB: sisusb: add device id for Magic Control USB video Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 112/357] USB: serial: fix potential heap buffer overflow Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 113/357] USB: option: reduce interrupt-urb logging verbosity Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 114/357] USB: option: add VIA Telecom CDS7 chipset device id Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 115/357] Revert "USB: option,zte_ev: move most ZTE CDMA devices to zte_ev" Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 116/357] USB: zte_ev: remove duplicate Gobi PID Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 117/357] USB: zte_ev: remove duplicate Qualcom PID Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 120/357] usb: phy: tegra: Avoid use of sizeof(void) Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 121/357] usb: phy: twl4030-usb: Fix lost interrupts after ID pin goes down Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 122/357] usb: phy: twl4030-usb: Fix regressions to runtime PM on omaps Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 123/357] usb: chipidea: msm: Use USB PHY API to control PHY state Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 124/357] usb: chipidea: msm: Initialize PHY on reset event Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 125/357] USB: ftdi_sio: Add support for GE Healthcare Nemo Tracker device Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 126/357] USB: ftdi_sio: add support for NOVITUS Bono E thermal printer Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 127/357] USB: zte_ev: fix removed PIDs Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 128/357] uwb: init beacon cache entry before registering uwb device Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 129/357] usb: host: xhci: fix compliance mode workaround Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 130/357] xhci: Fix null pointer dereference if xhci initialization fails Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 131/357] usb: xhci: Fix OOPS in xhci error handling code Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 132/357] xhci: fix oops when xhci resumes from hibernate with hw lpm capable devices Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 133/357] usb: hub: take hub->hdev reference when processing from eventlist Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 134/357] USB: document the u flag for usb-storage quirks parameter Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 135/357] storage: Add single-LUN quirk for Jaz USB Adapter Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 136/357] USB: storage: Add quirk for Adaptec USBConnect 2000 USB-to-SCSI Adapter Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 137/357] USB: storage: Add quirk for Ariston Technologies iConnect USB to SCSI adapter Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 138/357] USB: storage: Add quirks for Entrega/Xircom USB to SCSI converters Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 139/357] USB: EHCI: unlink QHs even after the controller has stopped Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 140/357] usb: dwc3: core: fix order of PM runtime calls Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 141/357] usb: dwc3: core: fix ordering for PHY suspend Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 142/357] usb: dwc3: omap: fix ordering for runtime pm calls Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 143/357] usb: dwc2/gadget: fix phy disable sequence Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 144/357] usb: dwc2/gadget: fix phy initialization sequence Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 145/357] usb: dwc2/gadget: break infinite loop in endpoint disable code Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 146/357] usb: dwc2/gadget: do not call disconnect method in pullup Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 147/357] usb: dwc2/gadget: delay enabling irq once hardware is configured properly Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 148/357] usb: dwc2/gadget: avoid disabling ep0 Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 149/357] ACPI / RTC: Fix CMOS RTC opregion handler accesses to wrong addresses Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 150/357] ACPI / LPSS: complete PM entries for LPSS power domain Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 152/357] iommu/vt-d: Check return value of acpi_bus_get_device() Greg Kroah-Hartman
2014-10-03 21:28 ` [PATCH 3.16 153/357] iommu/fsl: Fix warning resulting from adding PCI device twice Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 154/357] iommu/arm-smmu: fix programming of SMMU_CBn_TCR for stage 1 Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 155/357] nfsd4: fix rd_dircount enforcement Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 157/357] NFSv4: nfs4_state_manager() vs. nfs_server_remove_lists() Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 158/357] NFSv4: Fix another bug in the close/open_downgrade code Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 159/357] nfsd4: fix corruption of NFSv4 read data Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 160/357] nfs: move nfs_pgio_data and remove nfs_rw_header Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 161/357] nfs: rename members of nfs_pgio_data Greg Kroah-Hartman
2014-10-03 21:29 ` Greg Kroah-Hartman [this message]
2014-10-03 21:29 ` [PATCH 3.16 163/357] nfs: remove pgio_header refcount, related cleanup Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 164/357] nfs: check wait_on_bit_lock err in page_group_lock Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 165/357] pnfs: add pnfs_put_lseg_async Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 166/357] nfs: clear_request_commit while holding i_lock Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 167/357] nfs: change nfs_page_group_lock argument Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 168/357] nfs: fix nonblocking calls to nfs_page_group_lock Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 169/357] nfs: use blocking page_group_lock in add_request Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 170/357] nfs: fix error handling in lock_and_join_requests Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 171/357] nfs: dont sleep with inode lock " Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 174/357] spi/omap-mcspi: Fix the spi task hangs waiting dma_rx Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 175/357] spi: dw: fix kernel crash due to NULL pointer dereference Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 176/357] spi: dw-pci: fix bug when regs left uninitialized Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 177/357] ARM: 8128/1: abort: dont clear the exclusive monitors Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 178/357] ARM: 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy strex Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 179/357] ARM: dts: imx53-qsrb: Fix suspend/resume Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 180/357] ARM: DRA7: hwmod: Add dra74x and dra72x specific ocp interface lists Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 181/357] ARM: dts: DRA7: fix interrupt-cells for GPIO Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 182/357] ARM: edma: Fix configuration parsing for SoCs with multiple eDMA3 CC Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 183/357] ARM: dts: dra7-evm: Fix spi1 mux documentation Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 184/357] ARM: 8133/1: use irq_set_affinity with force=false when migrating irqs Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 185/357] ARM: 8148/1: flush TLS and thumbee register state during exec Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 186/357] ARM: 8149/1: perf: Dont sleep while atomic when enabling per-cpu interrupts Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 187/357] ARM: dts: dra7-evm: Fix NAND GPMC timings Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 188/357] ARM: DT: imx53: fix lvds channel 1 port Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 189/357] ARM: imx: fix .is_enabled() of shared gate clock Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 190/357] ARM: 8165/1: alignment: dont break misaligned NEON load/store Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 191/357] ARM: 8178/1: fix set_tls for !CONFIG_KUSER_HELPERS Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 192/357] MIPS: ZBOOT: add missing <linux/string.h> include Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 193/357] MIPS: Fix MFC1 & MFHC1 emulation for 64-bit MIPS systems Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 194/357] MIPS: mcount: Adjust stack pointer for static trace in MIPS32 Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 195/357] ACPICA: Update to GPIO region handler interface Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 196/357] gpio / ACPI: Use pin index and bit length Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 197/357] ACPI / platform / LPSS: disable async suspend/resume of LPSS devices Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 198/357] ACPI / hotplug: Generate online uevents for ACPI containers Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 199/357] ACPI / scan: Correct error return value of create_modalias() Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 200/357] ACPI / video: disable native backlight for ThinkPad X201s Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 201/357] arm64: Add brackets around user_stack_pointer() Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 202/357] memblock, memhotplug: fix wrong type in memblock_find_in_range_node() Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 203/357] regmap: Fix regcache debugfs initialization Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 204/357] regmap: Fix handling of volatile registers for format_write() chips Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 205/357] regmap: Dont attempt block writes when syncing cache on single_rw devices Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 206/357] cgroup: reject cgroup names with \n Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 208/357] cgroup: fix unbalanced locking Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 209/357] KVM: s390: Fix user triggerable bug in dead code Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 210/357] KVM: s390/mm: try a cow on read only pages for key ops Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 211/357] KVM: s390/mm: Fix storage key corruption during swapping Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 212/357] KVM: s390/mm: Fix guest storage key corruption in ptep_set_access_flags Greg Kroah-Hartman
2014-10-03 21:29 ` [PATCH 3.16 213/357] xen/manage: Always freeze/thaw processes when suspend/resuming Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 214/357] x86/xen: dont copy bogus duplicate entries into kernel page tables Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 215/357] x86 early_ioremap: Increase FIX_BTMAPS_SLOTS to 8 Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 216/357] x86/kaslr: Avoid the setup_data area when picking location Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 217/357] shmem: fix nlink for rename overwrite directory Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 218/357] ASoC: davinci-mcasp: Correct rx format unit configuration Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 219/357] SMB3: Fix oops when creating symlinks on smb3 Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 220/357] iio:trigger: modify return value for iio_trigger_get Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 221/357] iio: accel: bma180: Fix indio_dev->trig assignment Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 222/357] iio: hid_sensor_hub: " Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 223/357] iio: gyro: itg3200: " Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 224/357] iio: inv_mpu6050: " Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 225/357] iio: meter: ade7758: " Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 226/357] iio: st_sensors: " Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 227/357] iio: adc: ad_sigma_delta: " Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 228/357] iio:magnetometer: bugfix magnetometers gain values Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 229/357] iio:inkern: fix overwritten -EPROBE_DEFER in of_iio_channel_get_by_name Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 230/357] iio: adc: xilinx-xadc: assign auxiliary channels address correctly Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 231/357] iio: adc: at91: dont use the last converted data register Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 232/357] Target/iser: Get isert_conn reference once got to connected_handler Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 233/357] Target/iser: Dont put isert_conn inside disconnected handler Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 234/357] target: Fix inverted logic in SE_DEV_ALUA_SUPPORT_STATE_STORE Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 235/357] iscsi-target: avoid NULL pointer in iscsi_copy_param_list failure Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 236/357] iscsi-target: Fix memory corruption in iscsit_logout_post_handler_diffcid Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 237/357] NFC: microread: Potential overflows in microread_target_discovered() Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 238/357] SCSI: libiscsi: fix potential buffer overrun in __iscsi_conn_send_pdu Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 239/357] Revert "iwlwifi: dvm: dont enable CTS to self" Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 240/357] iwlwifi: mvm: fix endianity issues with Smart Fifo commands Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 241/357] iwlwifi: increase DEFAULT_MAX_TX_POWER Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 242/357] iwlwifi: mvm: treat EAPOLs like mgmt frames wrt rate Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 243/357] iwlwifi: mvm: set MAC_FILTER_IN_BEACON correctly for STA/P2P client Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 244/357] workqueue: apply __WQ_ORDERED to create_singlethread_workqueue() Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 245/357] futex: Unlock hb->lock in futex_wait_requeue_pi() error path Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 246/357] block: Fix dev_t minor allocation lifetime Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 247/357] dm cache: fix race causing dirty blocks to be marked as clean Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 248/357] dm crypt: fix access beyond the end of allocated space Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 249/357] Input: serport - add compat handling for SPIOCSTYPE ioctl Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 250/357] Input: synaptics - add support for ForcePads Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 252/357] Input: atkbd - do not try deactivate keyboard on any LG laptops Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 253/357] Input: i8042 - add Fujitsu U574 to no_timeout dmi table Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 254/357] Input: i8042 - add nomux quirk for Avatar AVIU-145A6 Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 255/357] hwmon: (ds1621) Update zbits after conversion rate change Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 256/357] ata_piix: Add Device IDs for Intel 9 Series PCH Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 257/357] gpio: Fix potential NULL handler data in chained irqchip handler Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 258/357] percpu: free percpu allocation info for uniprocessor system Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 259/357] percpu: fix pcpu_alloc_pages() failure path Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 260/357] percpu: perform tlb flush after pcpu_map_pages() failure Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 261/357] regulatory: add NUL to alpha2 Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 262/357] rtlwifi: rtl8192cu: Add new ID Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 263/357] lockd: fix rpcbind crash on lockd startup failure Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 264/357] lockdep: Revert lockdep check in raw_seqcount_begin() Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 265/357] genhd: fix leftover might_sleep() in blk_free_devt() Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 266/357] usb: dwc3: fix TRB completion when multiple TRBs are started Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 267/357] ftrace: Allow ftrace_ops to use the hashes from other ops Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 268/357] ftrace: Fix function_profiler and function tracer together Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 269/357] ftrace: Update all ftrace_ops for a ftrace_hash_ops update Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 270/357] Revert "mac80211: disable uAPSD if all ACs are under ACM" Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 271/357] kernel/printk/printk.c: fix faulty logic in the case of recursive printk Greg Kroah-Hartman
2014-10-03 21:30 ` [PATCH 3.16 273/357] kcmp: fix standard comparison bug Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 274/357] fsnotify/fdinfo: use named constants instead of hardcoded values Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 275/357] fs/notify: dont show f_handle if exportfs_encode_inode_fh failed Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 276/357] nilfs2: fix data loss with mmap() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 277/357] ocfs2/dlm: do not get resource spinlock if lockres is new Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 278/357] mm, slab: initialize object alignment on cache creation Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 279/357] fs/cachefiles: add missing \n to kerror conversions Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 280/357] mm: softdirty: keep bit when zapping file pte Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 281/357] sched: Fix unreleased llc_shared_mask bit during CPU hotplug Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 282/357] brcmfmac: handle IF event for P2P_DEVICE interface Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 283/357] ath9k_htc: fix random decryption failure Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 284/357] powerpc/perf: Fix ABIv2 kernel backtraces Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 285/357] powerpc: Add smp_mb() to arch_spin_is_locked() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 286/357] powerpc: Add smp_mb()s to arch_spin_unlock_wait() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 287/357] tty/serial: at91: BUG: disable interrupts when !UART_ENABLE_MS() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 288/357] dont bugger nd->seq on set_root_rcu() from follow_dotdot_rcu() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 289/357] parisc: Implement new LWS CAS supporting 64 bit operations Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 290/357] parisc: Only use -mfast-indirect-calls option for 32-bit kernel builds Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 291/357] alarmtimer: Return relative times in timer_gettime Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 292/357] alarmtimer: Do not signal SIGEV_NONE timers Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 293/357] alarmtimer: Lock k_itimer during timer callback Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 294/357] virtio: rng: delay hwrng_register() till driver is ready Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 295/357] Revert "hwrng: virtio - ensure reads happen after successful probe" Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 296/357] GFS2: fix d_splice_alias() misuses Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 297/357] IB/qib: Correct reference counting in debugfs qp_stats Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 298/357] IB/mlx4: Avoid null pointer dereference in mlx4_ib_scan_netdevs() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 299/357] IB/mlx4: Dont duplicate the default RoCE GID Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 300/357] IB/core: When marshaling uverbs path, clear unused fields Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 301/357] spi: fsl: Dont use devm_kzalloc in master->setup callback Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 302/357] spi: dw: " Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 303/357] spi: sirf: enable RX_IO_DMA_INT interrupt Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 305/357] perf: Fix a race condition in perf_remove_from_context() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 307/357] PCI: Add pci_ignore_hotplug() to ignore hotplug events for a device Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 308/357] Revert "PCI: Dont scan random busses in pci_scan_bridge()" Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 312/357] Fix nasty 32-bit overflow bug in buffer i/o code Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 313/357] blk-mq: Avoid race condition with uninitialized requests Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 314/357] crypto: ccp - Check for CCP before registering crypto algs Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 315/357] nl80211: clear skb cb before passing to netlink Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 316/357] Revert "PCI: Make sure bus number resources stay within their parents bounds" Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 317/357] cpufreq: release policy->rwsem on error Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 318/357] cpufreq: fix cpufreq suspend/resume for intel_pstate Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 319/357] media: it913x: init tuner on attach Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 320/357] media: af9035: new IDs: add support for PCTV 78e and PCTV 79e Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 321/357] media: af9033: feed clock to RF tuner Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 322/357] media: cx18: fix kernel oops with tda8290 tuner Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 323/357] media: af9033: update IT9135 tuner inittabs Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 324/357] media: adv7604: fix inverted condition Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 325/357] media: em28xx: fix VBI handling logic Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 326/357] media: videobuf2-dma-sg: fix for wrong GFP mask to sg_alloc_table_from_pages Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 327/357] media: vb2: fix vb2 state check when start_streaming fails Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 328/357] media: vb2: fix plane index sanity check in vb2_plane_cookie() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 329/357] md/raid1: clean up request counts properly in close_sync() Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 330/357] md/raid1: be more cautious where we read-balance during resync Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 331/357] md/raid1: make sure resync waits for conflicting writes to complete Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 332/357] md/raid1: Dont use next_resync to determine how far resync has progressed Greg Kroah-Hartman
2014-10-03 21:31 ` [PATCH 3.16 333/357] md/raid1: update next_resync under resync_lock Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 334/357] md/raid1: count resync requests in nr_pending Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 335/357] md/raid1: fix_read_error should act on all non-faulty devices Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 336/357] md/raid1: intialise start_next_window for READ case to avoid hang Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 337/357] netfilter: xt_hashlimit: perform garbage collection from process context Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 338/357] ipvs: Maintain all DSCP and ECN bits for ipv6 tun forwarding Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 339/357] netfilter: x_tables: allow to use default cgroup match Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 340/357] ipvs: fix ipv6 hook registration for local replies Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 341/357] netfilter: nf_tables: dont update chain with unset counters Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 342/357] mmc: mmci: Reverse IRQ handling for the arm_variant Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 343/357] dmaengine: dw: introduce dwc_dostart_first_queued() helper Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 344/357] dmaengine: dw: dont perform DMA when dmaengine_submit is called Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 345/357] partitions: aix.c: off by one bug Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 346/357] cpufreq: update cpufreq_suspended after stopping governors Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 347/357] clk: ti: dra7-atl: Provide error check for incoming parameters in set_rate Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 348/357] clk: prevent erronous parsing of children during rate change Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 349/357] clk: ti: divider: Provide error check for incoming parameters in set_rate Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 350/357] ahci_xgene: Removing NCQ support from the APM X-Gene SoC AHCI SATA Host Controller driver Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 351/357] aio: block exit_aio() until all context requests are completed Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 352/357] ext4: propagate errors up to ext4_find_entry()s callers Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 353/357] ext4: avoid trying to kfree an ERR_PTR pointer Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 354/357] staging/lustre: disable virtual block device for 64K pages Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 355/357] clk: qcom: Fix MN frequency tables, parent map, and jpegd Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 356/357] clk: qcom: mdp_lut_clk is a child of mdp_src Greg Kroah-Hartman
2014-10-03 21:32 ` [PATCH 3.16 357/357] clk: qcom: Fix PLL rate configurations Greg Kroah-Hartman
2014-10-04  0:33 ` [PATCH 3.16 000/357] 3.16.4-stable review Shuah Khan
2014-10-04  1:42   ` Greg Kroah-Hartman
2014-10-04  3:18 ` Guenter Roeck
2014-10-05 20:37   ` Greg Kroah-Hartman
2014-10-04  8:23 ` Satoru Takeuchi
2014-10-05 20:38   ` Greg Kroah-Hartman
2014-10-04 12:38 ` Chuck Ebbert
2014-10-05 20:39   ` Greg Kroah-Hartman
2014-10-05 20:50     ` Chuck Ebbert
2014-10-05 21:47       ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141003212938.337402693@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dros@primarydata.com \
    --cc=hch@lst.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=trond.myklebust@primarydata.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).