diff options
author | Olga Kornievskaia <olga.kornievskaia@gmail.com> | 2022-07-25 09:32:27 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2022-07-25 10:06:04 -0400 |
commit | e818bd085baf18cc3271c0f5549d9f5a7069efba (patch) | |
tree | 564a1405e40e2380181d2b09be3c468b114a6286 /fs/nfs | |
parent | 497e6464d6adcee64f071b18fc826e63cfd2f0a5 (diff) | |
download | linux-e818bd085baf18cc3271c0f5549d9f5a7069efba.tar.bz2 |
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.c | 3 |
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); } |