aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2009-12-03 15:58:56 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2009-12-03 15:58:56 -0500
commit2a76b3bfa22993fc09166bd6a8db0dbe902b6813 (patch)
tree3cb222408155a5d878d6e2dfae2aadd24226ee62 /net
parentc526611dd631b2802b6b0221ffb306c5fa25c86c (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>
Diffstat (limited to 'net')
-rw-r--r--net/sunrpc/rpcb_clnt.c4
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);
176static int rpcb_create_local(void) 176static 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);