aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2013-08-05 14:10:43 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2013-08-05 22:17:00 -0400
commit00326ed6442c66021cd4b5e19e80f3e2027d5d42 (patch)
tree5dd1e20d341dae00d0992f972bd1de851be51df8
parent9a1b6bf818e74bb7aabaecb59492b739f2f4d742 (diff)
SUNRPC: Don't auto-disconnect from the local rpcbind socket
There is no need for the kernel to time out the AF_LOCAL connection to the rpcbind socket, and doing so is problematic because when it is time to reconnect, our process may no longer be using the same mount namespace. Reported-by: Nix <nix@esperi.org.uk> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Jeff Layton <jlayton@redhat.com> Cc: stable@vger.kernel.org # 3.9.x
-rw-r--r--net/sunrpc/rpcb_clnt.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
index 3df764dc330c..b0f723227157 100644
--- a/net/sunrpc/rpcb_clnt.c
+++ b/net/sunrpc/rpcb_clnt.c
@@ -238,6 +238,14 @@ static int rpcb_create_local_unix(struct net *net)
238 .program = &rpcb_program, 238 .program = &rpcb_program,
239 .version = RPCBVERS_2, 239 .version = RPCBVERS_2,
240 .authflavor = RPC_AUTH_NULL, 240 .authflavor = RPC_AUTH_NULL,
241 /*
242 * We turn off the idle timeout to prevent the kernel
243 * from automatically disconnecting the socket.
244 * Otherwise, we'd have to cache the mount namespace
245 * of the caller and somehow pass that to the socket
246 * reconnect code.
247 */
248 .flags = RPC_CLNT_CREATE_NO_IDLE_TIMEOUT,
241 }; 249 };
242 struct rpc_clnt *clnt, *clnt4; 250 struct rpc_clnt *clnt, *clnt4;
243 int result = 0; 251 int result = 0;