diff options
author | Chuck Lever <cel@netapp.com> | 2005-10-06 23:12:58 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-18 17:20:10 -0400 |
commit | ea635a517e350eb03ab5f01618417f31b82a9a4d (patch) | |
tree | f2c506b1dec60259ab9d6cfd0b092433cf91774f /net/sunrpc/clnt.c | |
parent | cff6bf970965c98c62007fc8a36527fd147fe233 (diff) |
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>
Diffstat (limited to 'net/sunrpc/clnt.c')
-rw-r--r-- | net/sunrpc/clnt.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 5a8f01d726e9..a5f7029b1daa 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -759,7 +759,8 @@ call_bind_status(struct rpc_task *task) | |||
759 | case -EACCES: | 759 | case -EACCES: |
760 | dprintk("RPC: %4d remote rpcbind: RPC program/version unavailable\n", | 760 | dprintk("RPC: %4d remote rpcbind: RPC program/version unavailable\n", |
761 | task->tk_pid); | 761 | task->tk_pid); |
762 | break; | 762 | rpc_delay(task, 3*HZ); |
763 | goto retry_bind; | ||
763 | case -ETIMEDOUT: | 764 | case -ETIMEDOUT: |
764 | dprintk("RPC: %4d rpcbind request timed out\n", | 765 | dprintk("RPC: %4d rpcbind request timed out\n", |
765 | task->tk_pid); | 766 | task->tk_pid); |