SUNRPC: Retry rpcbind requests if the server's portmapper isn't up

After a server crash/reboot, rebinding should always retry, otherwise
 requests on "hard" mounts will fail when they shouldn't.

 Test plan:
 Run a lock-intensive workload against a server while rebooting the server
 repeatedly.

 Signed-off-by: Chuck Lever <cel@netapp.com>
 Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Chuck Lever 2005-10-06 23:12:58 -04:00 committed by Trond Myklebust
parent cff6bf9709
commit ea635a517e

View File

@ -759,7 +759,8 @@ call_bind_status(struct rpc_task *task)
case -EACCES: case -EACCES:
dprintk("RPC: %4d remote rpcbind: RPC program/version unavailable\n", dprintk("RPC: %4d remote rpcbind: RPC program/version unavailable\n",
task->tk_pid); task->tk_pid);
break; rpc_delay(task, 3*HZ);
goto retry_bind;
case -ETIMEDOUT: case -ETIMEDOUT:
dprintk("RPC: %4d rpcbind request timed out\n", dprintk("RPC: %4d rpcbind request timed out\n",
task->tk_pid); task->tk_pid);