From: Olga Kornievskaia Date: Mon, 25 Jul 2022 13:32:27 +0000 (-0400) Subject: NFSv4.1 remove xprt from xprt_switch if session trunking test fails X-Git-Tag: v6.0-rc1~38^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e818bd085baf18cc3271c0f5549d9f5a7069efba;p=thirdparty%2Fkernel%2Fstable.git 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 Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 3f4e84e9646ef..4850e29904e65 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); }