diff options
author | Andy Adamson <andros@netapp.com> | 2012-04-27 17:53:44 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-05-19 17:54:19 -0400 |
commit | 9f0ec176b3071e0472582c07ae1e68055b28184d (patch) | |
tree | a767381b136e8ac9f7839917b477fd7cd8cf9dc3 /fs/nfs/read.c | |
parent | 90fecfcb3437dfc9bec4ee3306584dcd6843701b (diff) |
NFSv4.1 set RPC_TASK_SOFTCONN for filelayout DS RPC calls
RPC_TASK_SOFTCONN returns connection errors to the caller which allows the pNFS
file layout to quickly try the MDS or perhaps another DS.
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/read.c')
-rw-r--r-- | fs/nfs/read.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index f23cf255bd39..2cfdd7785411 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
@@ -206,7 +206,7 @@ out: | |||
206 | 206 | ||
207 | int nfs_initiate_read(struct rpc_clnt *clnt, | 207 | int nfs_initiate_read(struct rpc_clnt *clnt, |
208 | struct nfs_read_data *data, | 208 | struct nfs_read_data *data, |
209 | const struct rpc_call_ops *call_ops) | 209 | const struct rpc_call_ops *call_ops, int flags) |
210 | { | 210 | { |
211 | struct inode *inode = data->header->inode; | 211 | struct inode *inode = data->header->inode; |
212 | int swap_flags = IS_SWAPFILE(inode) ? NFS_RPC_SWAPFLAGS : 0; | 212 | int swap_flags = IS_SWAPFILE(inode) ? NFS_RPC_SWAPFLAGS : 0; |
@@ -223,7 +223,7 @@ int nfs_initiate_read(struct rpc_clnt *clnt, | |||
223 | .callback_ops = call_ops, | 223 | .callback_ops = call_ops, |
224 | .callback_data = data, | 224 | .callback_data = data, |
225 | .workqueue = nfsiod_workqueue, | 225 | .workqueue = nfsiod_workqueue, |
226 | .flags = RPC_TASK_ASYNC | swap_flags, | 226 | .flags = RPC_TASK_ASYNC | swap_flags | flags, |
227 | }; | 227 | }; |
228 | 228 | ||
229 | /* Set up the initial task struct. */ | 229 | /* Set up the initial task struct. */ |
@@ -272,7 +272,7 @@ static int nfs_do_read(struct nfs_read_data *data, | |||
272 | { | 272 | { |
273 | struct inode *inode = data->header->inode; | 273 | struct inode *inode = data->header->inode; |
274 | 274 | ||
275 | return nfs_initiate_read(NFS_CLIENT(inode), data, call_ops); | 275 | return nfs_initiate_read(NFS_CLIENT(inode), data, call_ops, 0); |
276 | } | 276 | } |
277 | 277 | ||
278 | static int | 278 | static int |