aboutsummaryrefslogtreecommitdiff
path: root/fs/nfs
diff options
context:
space:
mode:
authorGravatar Olga Kornievskaia <olga.kornievskaia@gmail.com> 2022-07-25 09:32:27 -0400
committerGravatar Trond Myklebust <trond.myklebust@hammerspace.com> 2022-07-25 10:06:04 -0400
commite818bd085baf18cc3271c0f5549d9f5a7069efba (patch)
tree564a1405e40e2380181d2b09be3c468b114a6286 /fs/nfs
parentSUNRPC create an rpc function that allows xprt removal from rpc_clnt (diff)
downloadlinux-e818bd085baf18cc3271c0f5549d9f5a7069efba.tar.gz
linux-e818bd085baf18cc3271c0f5549d9f5a7069efba.tar.bz2
linux-e818bd085baf18cc3271c0f5549d9f5a7069efba.zip
NFSv4.1 remove xprt from xprt_switch if session trunking test fails
If we are doing a session trunking test and it fails for the transport, then remove this transport from the xprt_switch group. Signed-off-by: Olga Kornievskaia <kolga@netapp.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/nfs4proc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 3f4e84e9646e..4850e29904e6 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -8922,6 +8922,9 @@ void nfs4_test_session_trunk(struct rpc_clnt *clnt, struct rpc_xprt *xprt,
if (status == 0)
rpc_clnt_xprt_switch_add_xprt(clnt, xprt);
+ else if (rpc_clnt_xprt_switch_has_addr(clnt,
+ (struct sockaddr *)&xprt->addr))
+ rpc_clnt_xprt_switch_remove_xprt(clnt, xprt);
rpc_put_task(task);
}