Currently, if a remote RPC service is unreachable, an RPC ping will hang until the underlying transport connect attempt times out. A more desirable behavior might be to have the ping fail immediately so upper layers can recover appropriately. In the case of an NFS mount, for instance, this would mean the mount(2) system call could fail immediately if the server isn't listening, rather than hanging uninterruptibly for more than 3 minutes. With the new soft connect flag, we can get this behavior. After this patch, rpc_create() with TCP will fail immediately if an RPC ping was requested and the server is not reachable. Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx> --- net/sunrpc/clnt.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index dc75289..ba52326 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -1703,7 +1703,7 @@ static int rpc_ping(struct rpc_clnt *clnt, int flags) }; int err; msg.rpc_cred = authnull_ops.lookup_cred(NULL, NULL, 0); - err = rpc_call_sync(clnt, &msg, flags); + err = rpc_call_sync(clnt, &msg, flags | RPC_TASK_SOFTCONN); put_rpccred(msg.rpc_cred); return err; } -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html