diff options
| author | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-03-17 12:57:31 -0400 |
|---|---|---|
| committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-03-17 15:14:18 -0400 |
| commit | fdb63dcdb53a3c6dc11d4e438ef2425ec962d1e9 (patch) | |
| tree | 71162f34290e25e9429f59423a7b1df49d515a6b | |
| parent | 485f2251782f7c44299c491d4676a8a01428d191 (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>
| -rw-r--r-- | net/sunrpc/clnt.c | 5 |
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 | ||
| 1758 | retry_timeout: | 1756 | retry_timeout: |
| 1757 | task->tk_status = 0; | ||
| 1759 | task->tk_action = call_timeout; | 1758 | task->tk_action = call_timeout; |
| 1760 | } | 1759 | } |
| 1761 | 1760 | ||
