diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-08-20 13:04:12 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-08-20 13:04:12 -0400 |
commit | 7af7a5963c40d8ed853d1004701c73a221d94644 (patch) | |
tree | 23b5f9454fc911929af783887e56d433995e7344 /net/sunrpc | |
parent | b7561e51868c929c40b26e45e8e63a6aa5aa211f (diff) | |
parent | 53a75f22e78a601321c2e1fd16266ecdae2f2309 (diff) | |
download | linux-7af7a5963c40d8ed853d1004701c73a221d94644.tar.bz2 |
Merge branch 'bugfixes'
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/clnt.c | 8 |
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: |