aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/blocklayout
diff options
context:
space:
mode:
authorAnna Schumaker <Anna.Schumaker@netapp.com>2014-05-06 09:12:26 -0400
committerTrond Myklebust <trond.myklebust@primarydata.com>2014-05-28 18:12:47 -0400
commit9c7e1b3d50b56b8d8f6237ed232350b7c6476cd5 (patch)
tree4113ef7dcdbf7b55139f7765d7dc1044d7c0fd83 /fs/nfs/blocklayout
parent9137bdf3d241fc2cbeb2a8ced51d1546150aa6a1 (diff)
NFS: Create a common read and write data struct
At this point, the only difference between nfs_read_data and nfs_write_data is the write verifier. Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/blocklayout')
-rw-r--r--fs/nfs/blocklayout/blocklayout.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
index 65d849bdf77a..206cc68c9694 100644
--- a/fs/nfs/blocklayout/blocklayout.c
+++ b/fs/nfs/blocklayout/blocklayout.c
@@ -210,7 +210,7 @@ static void bl_end_io_read(struct bio *bio, int err)
210 SetPageUptodate(bvec->bv_page); 210 SetPageUptodate(bvec->bv_page);
211 211
212 if (err) { 212 if (err) {
213 struct nfs_read_data *rdata = par->data; 213 struct nfs_pgio_data *rdata = par->data;
214 struct nfs_pgio_header *header = rdata->header; 214 struct nfs_pgio_header *header = rdata->header;
215 215
216 if (!header->pnfs_error) 216 if (!header->pnfs_error)
@@ -224,17 +224,17 @@ static void bl_end_io_read(struct bio *bio, int err)
224static void bl_read_cleanup(struct work_struct *work) 224static void bl_read_cleanup(struct work_struct *work)
225{ 225{
226 struct rpc_task *task; 226 struct rpc_task *task;
227 struct nfs_read_data *rdata; 227 struct nfs_pgio_data *rdata;
228 dprintk("%s enter\n", __func__); 228 dprintk("%s enter\n", __func__);
229 task = container_of(work, struct rpc_task, u.tk_work); 229 task = container_of(work, struct rpc_task, u.tk_work);
230 rdata = container_of(task, struct nfs_read_data, task); 230 rdata = container_of(task, struct nfs_pgio_data, task);
231 pnfs_ld_read_done(rdata); 231 pnfs_ld_read_done(rdata);
232} 232}
233 233
234static void 234static void
235bl_end_par_io_read(void *data, int unused) 235bl_end_par_io_read(void *data, int unused)
236{ 236{
237 struct nfs_read_data *rdata = data; 237 struct nfs_pgio_data *rdata = data;
238 238
239 rdata->task.tk_status = rdata->header->pnfs_error; 239 rdata->task.tk_status = rdata->header->pnfs_error;
240 INIT_WORK(&rdata->task.u.tk_work, bl_read_cleanup); 240 INIT_WORK(&rdata->task.u.tk_work, bl_read_cleanup);
@@ -242,7 +242,7 @@ bl_end_par_io_read(void *data, int unused)
242} 242}
243 243
244static enum pnfs_try_status 244static enum pnfs_try_status
245bl_read_pagelist(struct nfs_read_data *rdata) 245bl_read_pagelist(struct nfs_pgio_data *rdata)
246{ 246{
247 struct nfs_pgio_header *header = rdata->header; 247 struct nfs_pgio_header *header = rdata->header;
248 int i, hole; 248 int i, hole;
@@ -390,7 +390,7 @@ static void bl_end_io_write_zero(struct bio *bio, int err)
390 } 390 }
391 391
392 if (unlikely(err)) { 392 if (unlikely(err)) {
393 struct nfs_write_data *data = par->data; 393 struct nfs_pgio_data *data = par->data;
394 struct nfs_pgio_header *header = data->header; 394 struct nfs_pgio_header *header = data->header;
395 395
396 if (!header->pnfs_error) 396 if (!header->pnfs_error)
@@ -405,7 +405,7 @@ static void bl_end_io_write(struct bio *bio, int err)
405{ 405{
406 struct parallel_io *par = bio->bi_private; 406 struct parallel_io *par = bio->bi_private;
407 const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); 407 const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags);
408 struct nfs_write_data *data = par->data; 408 struct nfs_pgio_data *data = par->data;
409 struct nfs_pgio_header *header = data->header; 409 struct nfs_pgio_header *header = data->header;
410 410
411 if (!uptodate) { 411 if (!uptodate) {
@@ -423,10 +423,10 @@ static void bl_end_io_write(struct bio *bio, int err)
423static void bl_write_cleanup(struct work_struct *work) 423static void bl_write_cleanup(struct work_struct *work)
424{ 424{
425 struct rpc_task *task; 425 struct rpc_task *task;
426 struct nfs_write_data *wdata; 426 struct nfs_pgio_data *wdata;
427 dprintk("%s enter\n", __func__); 427 dprintk("%s enter\n", __func__);
428 task = container_of(work, struct rpc_task, u.tk_work); 428 task = container_of(work, struct rpc_task, u.tk_work);
429 wdata = container_of(task, struct nfs_write_data, task); 429 wdata = container_of(task, struct nfs_pgio_data, task);
430 if (likely(!wdata->header->pnfs_error)) { 430 if (likely(!wdata->header->pnfs_error)) {
431 /* Marks for LAYOUTCOMMIT */ 431 /* Marks for LAYOUTCOMMIT */
432 mark_extents_written(BLK_LSEG2EXT(wdata->header->lseg), 432 mark_extents_written(BLK_LSEG2EXT(wdata->header->lseg),
@@ -438,7 +438,7 @@ static void bl_write_cleanup(struct work_struct *work)
438/* Called when last of bios associated with a bl_write_pagelist call finishes */ 438/* Called when last of bios associated with a bl_write_pagelist call finishes */
439static void bl_end_par_io_write(void *data, int num_se) 439static void bl_end_par_io_write(void *data, int num_se)
440{ 440{
441 struct nfs_write_data *wdata = data; 441 struct nfs_pgio_data *wdata = data;
442 442
443 if (unlikely(wdata->header->pnfs_error)) { 443 if (unlikely(wdata->header->pnfs_error)) {
444 bl_free_short_extents(&BLK_LSEG2EXT(wdata->header->lseg)->bl_inval, 444 bl_free_short_extents(&BLK_LSEG2EXT(wdata->header->lseg)->bl_inval,
@@ -673,7 +673,7 @@ check_page:
673} 673}
674 674
675static enum pnfs_try_status 675static enum pnfs_try_status
676bl_write_pagelist(struct nfs_write_data *wdata, int sync) 676bl_write_pagelist(struct nfs_pgio_data *wdata, int sync)
677{ 677{
678 struct nfs_pgio_header *header = wdata->header; 678 struct nfs_pgio_header *header = wdata->header;
679 int i, ret, npg_zero, pg_index, last = 0; 679 int i, ret, npg_zero, pg_index, last = 0;