summaryrefslogtreecommitdiffstats
path: root/fs/nfs/pagelist.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/pagelist.c')
-rw-r--r--fs/nfs/pagelist.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index ab5b1850ca4f..2471e0278811 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