OSDN Git Service

NFSv4.1 remove xprt from xprt_switch if session trunking test fails
authorOlga Kornievskaia <olga.kornievskaia@gmail.com>
Mon, 25 Jul 2022 13:32:27 +0000 (09:32 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 25 Jul 2022 14:06:04 +0000 (10:06 -0400)
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>
fs/nfs/nfs4proc.c

index 3f4e84e..4850e29 100644 (file)
@@ -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);
 }