summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2017-08-20 19:04:12 +0200
committerTrond Myklebust <trond.myklebust@primarydata.com>2017-08-20 19:04:12 +0200
commit7af7a5963c40d8ed853d1004701c73a221d94644 (patch)
tree23b5f9454fc911929af783887e56d433995e7344 /net
parentMerge branch 'writeback' (diff)
parentNFS: Fix NFSv2 security settings (diff)
downloadlinux-7af7a5963c40d8ed853d1004701c73a221d94644.tar.xz
linux-7af7a5963c40d8ed853d1004701c73a221d94644.zip
Merge branch 'bugfixes'
Diffstat (limited to 'net')
-rw-r--r--net/sunrpc/clnt.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 2e49d1f892b7..69a9e5953744 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -1903,6 +1903,14 @@ call_connect_status(struct rpc_task *task)
task->tk_status = 0;
switch (status) {
case -ECONNREFUSED:
+ /* A positive refusal suggests a rebind is needed. */
+ if (RPC_IS_SOFTCONN(task))
+ break;
+ if (clnt->cl_autobind) {
+ rpc_force_rebind(clnt);
+ task->tk_action = call_bind;
+ return;
+ }
case -ECONNRESET:
case -ECONNABORTED:
case -ENETUNREACH: