On Wed, 2009-10-07 at 18:03 -0400, Chuck Lever wrote: > 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; > } Currently, all callers already set RPC_TASK_SOFT. Why not move that too into rpc_ping at the same time? -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@xxxxxxxxxx www.netapp.com -- 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