diff options
author | Tom Haynes <loghyr@primarydata.com> | 2014-06-09 16:12:20 -0400 |
---|---|---|
committer | Tom Haynes <loghyr@primarydata.com> | 2015-02-03 14:06:35 -0500 |
commit | abde71f4d3c027a30f8d725e1e22001313b4481a (patch) | |
tree | 231ac431aca9a18d5c7aa1fe0f87068cbe6ce931 /fs | |
parent | 5f01d9539496577b9ee62e213f4122a2a209550c (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.c | 4 | ||||
-rw-r--r-- | fs/nfs/internal.h | 1 | ||||
-rw-r--r-- | fs/nfs/pagelist.c | 6 | ||||
-rw-r--r-- | fs/nfs/read.c | 3 | ||||
-rw-r--r-- | fs/nfs/write.c | 6 |
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 *); | |||
251 | void nfs_pgio_data_destroy(struct nfs_pgio_header *); | 251 | void nfs_pgio_data_destroy(struct nfs_pgio_header *); |
252 | int nfs_generic_pgio(struct nfs_pageio_descriptor *, struct nfs_pgio_header *); | 252 | int nfs_generic_pgio(struct nfs_pageio_descriptor *, struct nfs_pgio_header *); |
253 | int nfs_initiate_pgio(struct rpc_clnt *, struct nfs_pgio_header *, | 253 | int 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); |
255 | void nfs_free_request(struct nfs_page *req); | 256 | void 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 | ||
599 | int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_header *hdr, | 599 | int 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 | ||
169 | static void nfs_initiate_read(struct nfs_pgio_header *hdr, | 169 | static 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 | ||
180 | static void | 181 | static 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 | ||
1241 | static void nfs_initiate_write(struct nfs_pgio_header *hdr, | 1241 | static 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 | ||