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>
This commit is contained in:
Trond Myklebust 2014-03-17 12:57:31 -04:00
parent 485f225178
commit fdb63dcdb5

View file

@ -1728,9 +1728,7 @@ call_bind_status(struct rpc_task *task)
case -EPROTONOSUPPORT: case -EPROTONOSUPPORT:
dprintk("RPC: %5u remote rpcbind version unavailable, retrying\n", dprintk("RPC: %5u remote rpcbind version unavailable, retrying\n",
task->tk_pid); task->tk_pid);
task->tk_status = 0; goto retry_timeout;
task->tk_action = call_bind;
return;
case -ECONNREFUSED: /* connection problems */ case -ECONNREFUSED: /* connection problems */
case -ECONNRESET: case -ECONNRESET:
case -ECONNABORTED: case -ECONNABORTED:
@ -1756,6 +1754,7 @@ call_bind_status(struct rpc_task *task)
return; return;
retry_timeout: retry_timeout:
task->tk_status = 0;
task->tk_action = call_timeout; task->tk_action = call_timeout;
} }