diff options
author | Anna Schumaker <Anna.Schumaker@netapp.com> | 2014-05-06 09:12:38 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-05-29 11:11:40 -0400 |
commit | c3766276f26090f4459329839cdcc8506dfbced5 (patch) | |
tree | 3ab2e9fbafd8241995a0bf16302373db947ee9b3 /fs/nfs/pagelist.c | |
parent | 1ed26f33008e954a8e91d26f97d4380dea8145db (diff) |
NFS: Create a common multiple_pgios() function
Once again, these two functions look identical in the read and write
case. Time to combine them together!
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/pagelist.c')
-rw-r--r-- | fs/nfs/pagelist.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c index ab5b1850ca4..2471e027881 100644 --- a/fs/nfs/pagelist.c +++ b/fs/nfs/pagelist.c @@ -493,6 +493,27 @@ out: } EXPORT_SYMBOL_GPL(nfs_initiate_pgio); +int nfs_do_multiple_pgios(struct list_head *head, + const struct rpc_call_ops *call_ops, + int how) +{ + struct nfs_pgio_data *data; + int ret = 0; + + while (!list_empty(head)) { + int ret2; + + data = list_first_entry(head, struct nfs_pgio_data, list); + list_del_init(&data->list); + + ret2 = nfs_initiate_pgio(NFS_CLIENT(data->header->inode), + data, call_ops, how, 0); + if (ret == 0) + ret = ret2; + } + return ret; +} + /** * nfs_pgio_error - Clean up from a pageio error * @desc: IO descriptor |