aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorTom Haynes <loghyr@primarydata.com>2014-06-09 16:12:20 -0400
committerTom Haynes <loghyr@primarydata.com>2015-02-03 14:06:35 -0500
commitabde71f4d3c027a30f8d725e1e22001313b4481a (patch)
tree231ac431aca9a18d5c7aa1fe0f87068cbe6ce931 /fs
parent5f01d9539496577b9ee62e213f4122a2a209550c (diff)
pnfs: Add nfs_rpc_ops in calls to nfs_initiate_pgio
Signed-off-by: Tom Haynes <loghyr@primarydata.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/filelayout/filelayout.c4
-rw-r--r--fs/nfs/internal.h1
-rw-r--r--fs/nfs/pagelist.c6
-rw-r--r--fs/nfs/read.c3
-rw-r--r--fs/nfs/write.c6
5 files changed, 12 insertions, 8 deletions
diff --git a/fs/nfs/filelayout/filelayout.c b/fs/nfs/filelayout/filelayout.c
index bc36ed350a68..25c4896887ca 100644
--- a/fs/nfs/filelayout/filelayout.c
+++ b/fs/nfs/filelayout/filelayout.c
@@ -501,7 +501,7 @@ filelayout_read_pagelist(struct nfs_pgio_header *hdr)
501 hdr->mds_offset = offset; 501 hdr->mds_offset = offset;
502 502
503 /* Perform an asynchronous read to ds */ 503 /* Perform an asynchronous read to ds */
504 nfs_initiate_pgio(ds_clnt, hdr, 504 nfs_initiate_pgio(ds_clnt, hdr, NFS_PROTO(hdr->inode),
505 &filelayout_read_call_ops, 0, RPC_TASK_SOFTCONN); 505 &filelayout_read_call_ops, 0, RPC_TASK_SOFTCONN);
506 return PNFS_ATTEMPTED; 506 return PNFS_ATTEMPTED;
507} 507}
@@ -542,7 +542,7 @@ filelayout_write_pagelist(struct nfs_pgio_header *hdr, int sync)
542 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset); 542 hdr->args.offset = filelayout_get_dserver_offset(lseg, offset);
543 543
544 /* Perform an asynchronous write */ 544 /* Perform an asynchronous write */
545 nfs_initiate_pgio(ds_clnt, hdr, 545 nfs_initiate_pgio(ds_clnt, hdr, NFS_PROTO(hdr->inode),
546 &filelayout_write_call_ops, sync, 546 &filelayout_write_call_ops, sync,
547 RPC_TASK_SOFTCONN); 547 RPC_TASK_SOFTCONN);
548 return PNFS_ATTEMPTED; 548 return PNFS_ATTEMPTED;
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index 5543850268d2..1d15ffa94937 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -251,6 +251,7 @@ void nfs_pgio_header_free(struct nfs_pgio_header *);
251void nfs_pgio_data_destroy(struct nfs_pgio_header *); 251void nfs_pgio_data_destroy(struct nfs_pgio_header *);
252int nfs_generic_pgio(struct nfs_pageio_descriptor *, struct nfs_pgio_header *); 252int nfs_generic_pgio(struct nfs_pageio_descriptor *, struct nfs_pgio_header *);
253int nfs_initiate_pgio(struct rpc_clnt *, struct nfs_pgio_header *, 253int nfs_initiate_pgio(struct rpc_clnt *, struct nfs_pgio_header *,
254 const struct nfs_rpc_ops *,
254 const struct rpc_call_ops *, int, int); 255 const struct rpc_call_ops *, int, int);
255void nfs_free_request(struct nfs_page *req); 256void nfs_free_request(struct nfs_page *req);
256 257
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index 2b5e769beb16..35a2626a6922 100644
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -597,6 +597,7 @@ static void nfs_pgio_prepare(struct rpc_task *task, void *calldata)
597} 597}
598 598
599int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_header *hdr, 599int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_header *hdr,
600 const struct nfs_rpc_ops *rpc_ops,
600 const struct rpc_call_ops *call_ops, int how, int flags) 601 const struct rpc_call_ops *call_ops, int how, int flags)
601{ 602{
602 struct rpc_task *task; 603 struct rpc_task *task;
@@ -616,7 +617,7 @@ int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_header *hdr,
616 }; 617 };
617 int ret = 0; 618 int ret = 0;
618 619
619 hdr->rw_ops->rw_initiate(hdr, &msg, &task_setup_data, how); 620 hdr->rw_ops->rw_initiate(hdr, &msg, rpc_ops, &task_setup_data, how);
620 621
621 dprintk("NFS: %5u initiated pgio call " 622 dprintk("NFS: %5u initiated pgio call "
622 "(req %s/%llu, %u bytes @ offset %llu)\n", 623 "(req %s/%llu, %u bytes @ offset %llu)\n",
@@ -792,7 +793,8 @@ static int nfs_generic_pg_pgios(struct nfs_pageio_descriptor *desc)
792 ret = nfs_generic_pgio(desc, hdr); 793 ret = nfs_generic_pgio(desc, hdr);
793 if (ret == 0) 794 if (ret == 0)
794 ret = nfs_initiate_pgio(NFS_CLIENT(hdr->inode), 795 ret = nfs_initiate_pgio(NFS_CLIENT(hdr->inode),
795 hdr, desc->pg_rpc_callops, 796 hdr, NFS_PROTO(hdr->inode),
797 desc->pg_rpc_callops,
796 desc->pg_ioflags, 0); 798 desc->pg_ioflags, 0);
797 return ret; 799 return ret;
798} 800}
diff --git a/fs/nfs/read.c b/fs/nfs/read.c
index c91a4799c562..092ab499f2b6 100644
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -168,13 +168,14 @@ out:
168 168
169static void nfs_initiate_read(struct nfs_pgio_header *hdr, 169static void nfs_initiate_read(struct nfs_pgio_header *hdr,
170 struct rpc_message *msg, 170 struct rpc_message *msg,
171 const struct nfs_rpc_ops *rpc_ops,
171 struct rpc_task_setup *task_setup_data, int how) 172 struct rpc_task_setup *task_setup_data, int how)
172{ 173{
173 struct inode *inode = hdr->inode; 174 struct inode *inode = hdr->inode;
174 int swap_flags = IS_SWAPFILE(inode) ? NFS_RPC_SWAPFLAGS : 0; 175 int swap_flags = IS_SWAPFILE(inode) ? NFS_RPC_SWAPFLAGS : 0;
175 176
176 task_setup_data->flags |= swap_flags; 177 task_setup_data->flags |= swap_flags;
177 NFS_PROTO(inode)->read_setup(hdr, msg); 178 rpc_ops->read_setup(hdr, msg);
178} 179}
179 180
180static void 181static void
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index af3af685a9e3..54d4857e0e2b 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1240,15 +1240,15 @@ static int flush_task_priority(int how)
1240 1240
1241static void nfs_initiate_write(struct nfs_pgio_header *hdr, 1241static void nfs_initiate_write(struct nfs_pgio_header *hdr,
1242 struct rpc_message *msg, 1242 struct rpc_message *msg,
1243 const struct nfs_rpc_ops *rpc_ops,
1243 struct rpc_task_setup *task_setup_data, int how) 1244 struct rpc_task_setup *task_setup_data, int how)
1244{ 1245{
1245 struct inode *inode = hdr->inode;
1246 int priority = flush_task_priority(how); 1246 int priority = flush_task_priority(how);
1247 1247
1248 task_setup_data->priority = priority; 1248 task_setup_data->priority = priority;
1249 NFS_PROTO(inode)->write_setup(hdr, msg); 1249 rpc_ops->write_setup(hdr, msg);
1250 1250
1251 nfs4_state_protect_write(NFS_SERVER(inode)->nfs_client, 1251 nfs4_state_protect_write(NFS_SERVER(hdr->inode)->nfs_client,
1252 &task_setup_data->rpc_client, msg, hdr); 1252 &task_setup_data->rpc_client, msg, hdr);
1253} 1253}
1254 1254