nfs: allow different protocol in nfs_initiate_commit
authorPeng Tao <tao.peng@primarydata.com>
Sun, 8 Jun 2014 23:10:14 +0000 (07:10 +0800)
committerTom Haynes <loghyr@primarydata.com>
Tue, 3 Feb 2015 19:06:35 +0000 (11:06 -0800)
pnfs flexfile layout client may want to use NFSv3 ops rather
than the default MDS v4 ops.

Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Tom Haynes <Thomas.Haynes@primarydata.com>
fs/nfs/filelayout/filelayout.c
fs/nfs/internal.h
fs/nfs/pnfs_nfs.c
fs/nfs/write.c

index 25c4896..e5a3c5b 100644 (file)
@@ -1055,7 +1055,7 @@ static int filelayout_initiate_commit(struct nfs_commit_data *data, int how)
        fh = select_ds_fh_from_commit(lseg, data->ds_commit_index);
        if (fh)
                data->args.fh = fh;
-       return nfs_initiate_commit(ds_clnt, data,
+       return nfs_initiate_commit(ds_clnt, data, NFS_PROTO(data->inode),
                                   &filelayout_commit_call_ops, how,
                                   RPC_TASK_SOFTCONN);
 out_err:
index 1d15ffa..98dee83 100644 (file)
@@ -436,6 +436,7 @@ extern void nfs_write_prepare(struct rpc_task *task, void *calldata);
 extern void nfs_commit_prepare(struct rpc_task *task, void *calldata);
 extern int nfs_initiate_commit(struct rpc_clnt *clnt,
                               struct nfs_commit_data *data,
+                              const struct nfs_rpc_ops *nfs_ops,
                               const struct rpc_call_ops *call_ops,
                               int how, int flags);
 extern void nfs_init_commit(struct nfs_commit_data *data,
index 23c851d..c87f664 100644 (file)
@@ -278,6 +278,7 @@ pnfs_generic_commit_pagelist(struct inode *inode, struct list_head *mds_pages,
                if (!data->lseg) {
                        nfs_init_commit(data, mds_pages, NULL, cinfo);
                        nfs_initiate_commit(NFS_CLIENT(inode), data,
+                                           NFS_PROTO(data->inode),
                                            data->mds_ops, how, 0);
                } else {
                        struct pnfs_commit_bucket *buckets;
diff --cc fs/nfs/write.c
Simple merge