aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/clnt.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2014-03-17 12:57:31 -0400
committerTrond Myklebust <trond.myklebust@primarydata.com>2014-03-17 15:14:18 -0400
commitfdb63dcdb53a3c6dc11d4e438ef2425ec962d1e9 (patch)
tree71162f34290e25e9429f59423a7b1df49d515a6b /net/sunrpc/clnt.c
parent485f2251782f7c44299c491d4676a8a01428d191 (diff)
SUNRPC: Ensure that call_bind times out correctly
If the rpcbind server is unavailable, we still want the RPC client to respect the timeout. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'net/sunrpc/clnt.c')
-rw-r--r--net/sunrpc/clnt.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 5a1b8fa9ca13..cea1308a6fda 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -1728,9 +1728,7 @@ call_bind_status(struct rpc_task *task)
1728 case -EPROTONOSUPPORT: 1728 case -EPROTONOSUPPORT:
1729 dprintk("RPC: %5u remote rpcbind version unavailable, retrying\n", 1729 dprintk("RPC: %5u remote rpcbind version unavailable, retrying\n",
1730 task->tk_pid); 1730 task->tk_pid);
1731 task->tk_status = 0; 1731 goto retry_timeout;
1732 task->tk_action = call_bind;
1733 return;
1734 case -ECONNREFUSED: /* connection problems */ 1732 case -ECONNREFUSED: /* connection problems */
1735 case -ECONNRESET: 1733 case -ECONNRESET:
1736 case -ECONNABORTED: 1734 case -ECONNABORTED:
@@ -1756,6 +1754,7 @@ call_bind_status(struct rpc_task *task)
1756 return; 1754 return;
1757 1755
1758retry_timeout: 1756retry_timeout:
1757 task->tk_status = 0;
1759 task->tk_action = call_timeout; 1758 task->tk_action = call_timeout;
1760} 1759}
1761 1760