diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2009-12-03 15:58:56 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2009-12-03 15:58:56 -0500 |
commit | 2a76b3bfa22993fc09166bd6a8db0dbe902b6813 (patch) | |
tree | 3cb222408155a5d878d6e2dfae2aadd24226ee62 | |
parent | c526611dd631b2802b6b0221ffb306c5fa25c86c (diff) |
SUNRPC: Use TCP for local rpcbind upcalls
Use TCP with the soft connect semantic for local rpcbind upcalls so
the kernel can detect immediately if the local rpcbind daemon is not
running.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
-rw-r--r-- | net/sunrpc/rpcb_clnt.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c index 116db74dd942..401154094ee1 100644 --- a/net/sunrpc/rpcb_clnt.c +++ b/net/sunrpc/rpcb_clnt.c | |||
@@ -176,7 +176,7 @@ static DEFINE_MUTEX(rpcb_create_local_mutex); | |||
176 | static int rpcb_create_local(void) | 176 | static int rpcb_create_local(void) |
177 | { | 177 | { |
178 | struct rpc_create_args args = { | 178 | struct rpc_create_args args = { |
179 | .protocol = XPRT_TRANSPORT_UDP, | 179 | .protocol = XPRT_TRANSPORT_TCP, |
180 | .address = (struct sockaddr *)&rpcb_inaddr_loopback, | 180 | .address = (struct sockaddr *)&rpcb_inaddr_loopback, |
181 | .addrsize = sizeof(rpcb_inaddr_loopback), | 181 | .addrsize = sizeof(rpcb_inaddr_loopback), |
182 | .servername = "localhost", | 182 | .servername = "localhost", |
@@ -258,7 +258,7 @@ static int rpcb_register_call(struct rpc_clnt *clnt, struct rpc_message *msg) | |||
258 | 258 | ||
259 | msg->rpc_resp = &result; | 259 | msg->rpc_resp = &result; |
260 | 260 | ||
261 | error = rpc_call_sync(clnt, msg, 0); | 261 | error = rpc_call_sync(clnt, msg, RPC_TASK_SOFTCONN); |
262 | if (error < 0) { | 262 | if (error < 0) { |
263 | dprintk("RPC: failed to contact local rpcbind " | 263 | dprintk("RPC: failed to contact local rpcbind " |
264 | "server (errno %d).\n", -error); | 264 | "server (errno %d).\n", -error); |