From c3766276f26090f4459329839cdcc8506dfbced5 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Tue, 6 May 2014 09:12:38 -0400 Subject: 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 Signed-off-by: Trond Myklebust --- fs/nfs/pagelist.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'fs/nfs/pagelist.c') 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 -- cgit v1.2.3-70-g09d2