diff options
author | Peng Tao <tao.peng@primarydata.com> | 2014-06-08 19:10:14 -0400 |
---|---|---|
committer | Tom Haynes <loghyr@primarydata.com> | 2015-02-03 14:06:35 -0500 |
commit | c36aae9ad95afa2f9a9e9109d989c21af221fabd (patch) | |
tree | 60658de1393e59d61b66d143073faa17f92a6587 /fs/nfs/write.c | |
parent | abde71f4d3c027a30f8d725e1e22001313b4481a (diff) |
nfs: allow different protocol in nfs_initiate_commit
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>
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 54d4857e0e2b..8800bd3b235d 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -1465,6 +1465,7 @@ void nfs_commitdata_release(struct nfs_commit_data *data) | |||
1465 | EXPORT_SYMBOL_GPL(nfs_commitdata_release); | 1465 | EXPORT_SYMBOL_GPL(nfs_commitdata_release); |
1466 | 1466 | ||
1467 | int nfs_initiate_commit(struct rpc_clnt *clnt, struct nfs_commit_data *data, | 1467 | int nfs_initiate_commit(struct rpc_clnt *clnt, struct nfs_commit_data *data, |
1468 | const struct nfs_rpc_ops *nfs_ops, | ||
1468 | const struct rpc_call_ops *call_ops, | 1469 | const struct rpc_call_ops *call_ops, |
1469 | int how, int flags) | 1470 | int how, int flags) |
1470 | { | 1471 | { |
@@ -1486,7 +1487,7 @@ int nfs_initiate_commit(struct rpc_clnt *clnt, struct nfs_commit_data *data, | |||
1486 | .priority = priority, | 1487 | .priority = priority, |
1487 | }; | 1488 | }; |
1488 | /* Set up the initial task struct. */ | 1489 | /* Set up the initial task struct. */ |
1489 | NFS_PROTO(data->inode)->commit_setup(data, &msg); | 1490 | nfs_ops->commit_setup(data, &msg); |
1490 | 1491 | ||
1491 | dprintk("NFS: %5u initiated commit call\n", data->task.tk_pid); | 1492 | dprintk("NFS: %5u initiated commit call\n", data->task.tk_pid); |
1492 | 1493 | ||
@@ -1589,8 +1590,8 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how, | |||
1589 | /* Set up the argument struct */ | 1590 | /* Set up the argument struct */ |
1590 | nfs_init_commit(data, head, NULL, cinfo); | 1591 | nfs_init_commit(data, head, NULL, cinfo); |
1591 | atomic_inc(&cinfo->mds->rpcs_out); | 1592 | atomic_inc(&cinfo->mds->rpcs_out); |
1592 | return nfs_initiate_commit(NFS_CLIENT(inode), data, data->mds_ops, | 1593 | return nfs_initiate_commit(NFS_CLIENT(inode), data, NFS_PROTO(inode), |
1593 | how, 0); | 1594 | data->mds_ops, how, 0); |
1594 | out_bad: | 1595 | out_bad: |
1595 | nfs_retry_commit(head, NULL, cinfo); | 1596 | nfs_retry_commit(head, NULL, cinfo); |
1596 | cinfo->completion_ops->error_cleanup(NFS_I(inode)); | 1597 | cinfo->completion_ops->error_cleanup(NFS_I(inode)); |