diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-08-05 14:10:43 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-08-05 22:17:00 -0400 |
commit | 00326ed6442c66021cd4b5e19e80f3e2027d5d42 (patch) | |
tree | 5dd1e20d341dae00d0992f972bd1de851be51df8 /net/sunrpc | |
parent | 9a1b6bf818e74bb7aabaecb59492b739f2f4d742 (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
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/rpcb_clnt.c | 8 |
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; |