From patchwork Mon Feb 28 20:38:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Olga Kornievskaia X-Patchwork-Id: 12763793 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 083E7C433FE for ; Mon, 28 Feb 2022 20:38:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229507AbiB1Uit (ORCPT ); Mon, 28 Feb 2022 15:38:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229778AbiB1Uis (ORCPT ); Mon, 28 Feb 2022 15:38:48 -0500 Received: from mail-qk1-x72a.google.com (mail-qk1-x72a.google.com [IPv6:2607:f8b0:4864:20::72a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02FA317E0C for ; Mon, 28 Feb 2022 12:38:09 -0800 (PST) Received: by mail-qk1-x72a.google.com with SMTP id bm39so11408218qkb.0 for ; Mon, 28 Feb 2022 12:38:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cNagKDysBsf6UvnFDztIqGvr1Ndg7lq6E+bzhf9XLvk=; b=Uu3W/c6PkQDtf/JPsuhlHGUsjTpFsaEfELDDUx+Vlspm4YkpFOMpDCZS6wOqzRhBBl NM8lIZ0TNE50fW/wHcZhb9IYwNXhYsFaRV9xLes7HnNlvdlx52J+AN4Z7PJup5t09Emm WQrUzht9aN61mkJ2ekGSZd4RufNXSFwBpIOlyz4z8gEbZV98tkz4coVpyxld+aORiqK4 mO4OKoiVYX4YEYyhBIJA7EJkJwUkhGQiaacrvx0fEThcNhK64lTqFPAvdQ4FQoWrY/UJ xj2PiTCJIcpgbJOaHi+xcLx8rquZNQD55roJ7a3mWC78/boPHfSGsQwIwX0L+CLNTO7Z l/KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cNagKDysBsf6UvnFDztIqGvr1Ndg7lq6E+bzhf9XLvk=; b=ihm+Jttag6OvUDOquPenl7O/bvBG8814fx81EmBYURDMMMmPTYamRr7OcHmCkxShAE LnhowZT0eDhNTFnGM5V7dOuF8HcAMZSsT2HAnuKxUBczgJjNlqLLhQJrFVdvPniyAi1Y h21L7nS4drXa6YlBjyazGlc0XCwumgihTpNxOnMSPNfCVPwOh3MrMhC2H21Dt51pbDLZ fWCQJNm0vjYlS/SfTOa4ZHRzF7sQmw3dL4ECJPEFhuPbSJN9Z/KmaheVBm3kHdMueA/Q Nqor+1J5MxjkcBmpokrLoESjQjVSRqWnAgymNmperNVi+JzfX/MC4rpcPmntq1me48X4 YddQ== X-Gm-Message-State: AOAM5308MvCepfYyC4v8sWrSzFIKEasnmqvem4yY/rXOt1O2LTiAjE7e wriVUhaGjo1xLSfIQLzrqbA= X-Google-Smtp-Source: ABdhPJxF/t6a62sVZH2GF70YMokEjFKjqC65YRGpAidmmQbGGizUdrYFiLdUqr4VyHe+u16NuMtFkg== X-Received: by 2002:ae9:e711:0:b0:648:e0ca:13fa with SMTP id m17-20020ae9e711000000b00648e0ca13famr12603635qka.300.1646080688072; Mon, 28 Feb 2022 12:38:08 -0800 (PST) Received: from kolga-mac-1.vpn.netapp.com ([2600:1700:6a10:2e90:4cc0:8dcd:bb8c:75c2]) by smtp.gmail.com with ESMTPSA id p20-20020a05620a22b400b00648ca1458b4sm5457606qkh.5.2022.02.28.12.38.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Feb 2022 12:38:07 -0800 (PST) From: Olga Kornievskaia To: trond.myklebust@hammerspace.com, anna.schumaker@netapp.com Cc: linux-nfs@vger.kernel.org Subject: [RFC PATCH 1/3] SUNRPC provide accessible functions for offline remote xprt functionality Date: Mon, 28 Feb 2022 15:38:02 -0500 Message-Id: <20220228203804.61803-2-olga.kornievskaia@gmail.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) In-Reply-To: <20220228203804.61803-1-olga.kornievskaia@gmail.com> References: <20220228203804.61803-1-olga.kornievskaia@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Olga Kornievskaia Re-arrange the code that make offline transport and delete transport callable functions. Signed-off-by: Olga Kornievskaia --- include/linux/sunrpc/xprt.h | 2 ++ net/sunrpc/sysfs.c | 23 +++++------------------ net/sunrpc/xprt.c | 25 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 955ea4d7af0b..201c58991d4a 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h @@ -502,4 +502,6 @@ static inline int xprt_test_and_set_binding(struct rpc_xprt *xprt) return test_and_set_bit(XPRT_BINDING, &xprt->state); } +void xprt_set_offline_locked(struct rpc_xprt *xprt, struct rpc_xprt_switch *xps); +void xprt_delete_locked(struct rpc_xprt *xprt, struct rpc_xprt_switch *xps); #endif /* _LINUX_SUNRPC_XPRT_H */ diff --git a/net/sunrpc/sysfs.c b/net/sunrpc/sysfs.c index 05c758da6a92..4a6488dd1608 100644 --- a/net/sunrpc/sysfs.c +++ b/net/sunrpc/sysfs.c @@ -6,6 +6,7 @@ #include #include #include +//#include #include "sysfs.h" @@ -312,11 +313,7 @@ static ssize_t rpc_sysfs_xprt_state_change(struct kobject *kobj, goto release_tasks; } if (offline) { - if (!test_and_set_bit(XPRT_OFFLINE, &xprt->state)) { - spin_lock(&xps->xps_lock); - xps->xps_nactive--; - spin_unlock(&xps->xps_lock); - } + xprt_set_offline_locked(xprt, xps); } else if (online) { if (test_and_clear_bit(XPRT_OFFLINE, &xprt->state)) { spin_lock(&xps->xps_lock); @@ -324,20 +321,10 @@ static ssize_t rpc_sysfs_xprt_state_change(struct kobject *kobj, spin_unlock(&xps->xps_lock); } } else if (remove) { - if (test_bit(XPRT_OFFLINE, &xprt->state)) { - if (!test_and_set_bit(XPRT_REMOVE, &xprt->state)) { - xprt_force_disconnect(xprt); - if (test_bit(XPRT_CONNECTED, &xprt->state)) { - if (!xprt->sending.qlen && - !xprt->pending.qlen && - !xprt->backlog.qlen && - !atomic_long_read(&xprt->queuelen)) - rpc_xprt_switch_remove_xprt(xps, xprt); - } - } - } else { + if (test_bit(XPRT_OFFLINE, &xprt->state)) + xprt_delete_locked(xprt, xps); + else count = -EINVAL; - } } release_tasks: diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index 9f0025e0742c..16d4435b61b4 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c @@ -2151,3 +2151,28 @@ void xprt_put(struct rpc_xprt *xprt) kref_put(&xprt->kref, xprt_destroy_kref); } EXPORT_SYMBOL_GPL(xprt_put); + +void xprt_set_offline_locked(struct rpc_xprt *xprt, struct rpc_xprt_switch *xps) +{ + if (!test_and_set_bit(XPRT_OFFLINE, &xprt->state)) { + spin_lock(&xps->xps_lock); + xps->xps_nactive--; + spin_unlock(&xps->xps_lock); + } +} +EXPORT_SYMBOL(xprt_set_offline_locked); + +void xprt_delete_locked(struct rpc_xprt *xprt, struct rpc_xprt_switch *xps) +{ + if (test_and_set_bit(XPRT_REMOVE, &xprt->state)) + return; + + xprt_force_disconnect(xprt); + if (!test_bit(XPRT_CONNECTED, &xprt->state)) + return; + + if (!xprt->sending.qlen && !xprt->pending.qlen && + !xprt->backlog.qlen && !atomic_long_read(&xprt->queuelen)) + rpc_xprt_switch_remove_xprt(xps, xprt); +} +EXPORT_SYMBOL(xprt_delete_locked); From patchwork Mon Feb 28 20:38:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Olga Kornievskaia X-Patchwork-Id: 12763795 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CC658C433F5 for ; Mon, 28 Feb 2022 20:38:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229679AbiB1Uiu (ORCPT ); Mon, 28 Feb 2022 15:38:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51644 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229559AbiB1Uit (ORCPT ); Mon, 28 Feb 2022 15:38:49 -0500 Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D3BE17A84 for ; Mon, 28 Feb 2022 12:38:10 -0800 (PST) Received: by mail-qk1-x72c.google.com with SMTP id g24so11371142qkl.3 for ; Mon, 28 Feb 2022 12:38:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0FuAYtLnKT1mlulwvPsP9LLaHPo1cSJpwFcFGSUq3sE=; b=iZVjyIVWoNzx8+XlU6SJTFtd7u2TSwETi+e4tQF6B3HVJrp2HZx1nQ1iX+HD4LMiwd jYnpFBXyWkYmrVM2weX62vweMHdDit9NGmgxpeuaokMPFWfbn7l6dfhpNsVwae9kRP7A PgUVdCiK4Bg2g49VXbEtXPb36ZEuegoj5Iia7gWg3eTCX5hYw0a0XuThblGRhypYkbF7 qf1pZHtyk78bYp0Q0137mHEbSiL4feSDBaLknutO8CEO3ra2hdKOKabiYekfzfmdTuVy 55EP5bS0KiWojDb2Lb4NbbWY4rFQ3jjLlCZKgyKxwKyX82Qhi67Ew2rIHjgq2LT8348y PLVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0FuAYtLnKT1mlulwvPsP9LLaHPo1cSJpwFcFGSUq3sE=; b=SkMawBruUG265cjIVMj7I/VEr5awSpp8uz1HLep1U8+Vpa9SFkAvZFvAWLiE2aDKMj XlcsshXe/69q0WF6L2+9JqQS/hf7HZgDaruYwCO+R39AULwlvuTMBbvhN3wooMqKLypT RcQQFJaAa8AFDjzcZ/K1G4e0fY2GYadZ5oMuzHIfWuAFTHushIJCaSzP+BG8uhXwmVhy sXlHdEDTZJbz/8OqmkU642TpE3TKGuvNC2CtCL0b6D5xT0gK5tCu5oCRoLKcJWn/RQXh bRnksZljRvZtPnajD1ejS40hN7M3mPndzdvx5KQhp/U0FG8R7huIOKQsnuTjf9s26iyx l0kQ== X-Gm-Message-State: AOAM533DClmqS+jK5yWy6mwt90K9wGBHFbbkCV5HUvYhn3S7MMInkZhu Zr5+yAOmGYti/K4flJ4cMQM= X-Google-Smtp-Source: ABdhPJx7nJ1JnHeZz+quzEKxhEYLeE66F26kY8HeFIqmNmxwFSQOxOSwK9Z7sB7127snRKcUnR2vHA== X-Received: by 2002:a37:886:0:b0:60b:57d8:3192 with SMTP id 128-20020a370886000000b0060b57d83192mr12252074qki.67.1646080689281; Mon, 28 Feb 2022 12:38:09 -0800 (PST) Received: from kolga-mac-1.vpn.netapp.com ([2600:1700:6a10:2e90:4cc0:8dcd:bb8c:75c2]) by smtp.gmail.com with ESMTPSA id p20-20020a05620a22b400b00648ca1458b4sm5457606qkh.5.2022.02.28.12.38.08 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Feb 2022 12:38:08 -0800 (PST) From: Olga Kornievskaia To: trond.myklebust@hammerspace.com, anna.schumaker@netapp.com Cc: linux-nfs@vger.kernel.org Subject: [RFC PATCH 2/3] SUNRPC add function to offline remote trunkable transports Date: Mon, 28 Feb 2022 15:38:03 -0500 Message-Id: <20220228203804.61803-3-olga.kornievskaia@gmail.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) In-Reply-To: <20220228203804.61803-1-olga.kornievskaia@gmail.com> References: <20220228203804.61803-1-olga.kornievskaia@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Olga Kornievskaia Interate thru available transports in the xprt_switch for all trunkable transports offline and remote them. Signed-off-by: Olga Kornievskaia --- include/linux/sunrpc/clnt.h | 1 + net/sunrpc/clnt.c | 39 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h index 267b7aeaf1a6..273e507c5c87 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h @@ -233,6 +233,7 @@ int rpc_clnt_setup_test_and_add_xprt(struct rpc_clnt *, struct rpc_xprt_switch *, struct rpc_xprt *, void *); +void rpc_clnt_destroy_trunked_xprts(struct rpc_clnt *); const char *rpc_proc_name(const struct rpc_task *task); diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 97165a545cb3..6bb317caa128 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -2946,6 +2946,45 @@ int rpc_clnt_add_xprt(struct rpc_clnt *clnt, } EXPORT_SYMBOL_GPL(rpc_clnt_add_xprt); +static int rpc_xprt_destroy(struct rpc_clnt *clnt, struct rpc_xprt *xprt, void *data) +{ + struct rpc_xprt *main_xprt; + struct rpc_xprt_switch *xps; + int err = 0; + + xprt_get(xprt); + + rcu_read_lock(); + main_xprt = xprt_get(rcu_dereference(clnt->cl_xprt)); + xps = xprt_switch_get(rcu_dereference(clnt->cl_xpi.xpi_xpswitch)); + err = rpc_cmp_addr_port((struct sockaddr *)&xprt->addr, + (struct sockaddr *)&main_xprt->addr); + rcu_read_unlock(); + xprt_put(main_xprt); + if (err) + goto out; + + if (wait_on_bit_lock(&xprt->state, XPRT_LOCKED, TASK_KILLABLE)) { + err = -EINTR; + goto out; + } + xprt_set_offline_locked(xprt, xps); + xprt_delete_locked(xprt, xps); + + xprt_release_write(xprt, NULL); +out: + xprt_put(xprt); + xprt_switch_put(xps); + return err; +} + +void rpc_clnt_destroy_trunked_xprts(struct rpc_clnt *clnt) +{ + rpc_clnt_iterate_for_each_xprt(clnt, rpc_xprt_destroy, NULL); + return; +} +EXPORT_SYMBOL_GPL(rpc_clnt_destroy_trunked_xprts); + struct connect_timeout_data { unsigned long connect_timeout; unsigned long reconnect_timeout; From patchwork Mon Feb 28 20:38:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Olga Kornievskaia X-Patchwork-Id: 12763794 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E68E0C433EF for ; Mon, 28 Feb 2022 20:38:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229559AbiB1Uiv (ORCPT ); Mon, 28 Feb 2022 15:38:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229778AbiB1Uiu (ORCPT ); Mon, 28 Feb 2022 15:38:50 -0500 Received: from mail-qv1-xf36.google.com (mail-qv1-xf36.google.com [IPv6:2607:f8b0:4864:20::f36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4D85717E0C for ; Mon, 28 Feb 2022 12:38:11 -0800 (PST) Received: by mail-qv1-xf36.google.com with SMTP id jr3so295507qvb.11 for ; Mon, 28 Feb 2022 12:38:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ew6ex4ImrmoYJbAwJO0QlqYMqMREyKypAqRYlO3rTk0=; b=fMfJsgq92t7I7DVxS+jm3jZhNRnNb1iwzt8rg2DJmW825p5PlDdPMrr6W8wlCJekxF 7NndACtZtjXWTOd273wivLWj5Sol0uN6fLBBc5ohbb/GaR23GflqO6W/W/xqoeFA6u3E L5XJMfOtAi2IQXF5EAkmGXbJecOFDE697HNCGDGCZ2e+t0Jrlh+e69OxE762h+4+V2XC vf8RMa9myT8B4mEX2wSAis6cig6BklxGrWgUlkZ/4VVo7IB+22awaWqtjflPlv7XaW7/ s1LdJzbuAWdWymJLkEbdr3d4jEnoHXhsoStfOS7oSsLZOmxRW141xW164IRw3YTI3x9b +l8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ew6ex4ImrmoYJbAwJO0QlqYMqMREyKypAqRYlO3rTk0=; b=3GP8uqPOxUoTIPk8uz6XPJjCh+lVLRTyFWkmax3As0acwNsnAnfEnWaiLOZUzypTqs Qi0MsIANkf2imTM/Gsq9ZrvVoiXJIk3Dh8sQQWjM3rFFaOV0b2Xv5NE/dCVySqJnHxRm ABFK/NuhEbIacLDoDj8GzTHmWPPM8cSB0X07KAXhVpFmIXoTvHvUrGDH3ITd2nJ827zN YaQzmU/x+71toK5AxPpZb37tXo0JEvBlXkP9EatCo7cYr2FXFYytPvsXnndO0yaHpb6V e+LnlZP/wWGPJeNHYf14tmx22eaq/QCk92TuLqIh5eAV4x/wyMd7ST66sVFWNLfGkEve 1JPw== X-Gm-Message-State: AOAM532t6C9SJf0JCTrJHb8C7Z+56H++Izd3lHvGlk1E+6cZrQyz1KNK sYggkPt6ELfX3Hjz8YxFTwy3gfLsE3o= X-Google-Smtp-Source: ABdhPJyZLs6VDUC9pSXcJwYufAkvllIOS7gN9KgcZFZNAnAcm8Keqwmn+H4OV9p3fqKLVY/5twKyrA== X-Received: by 2002:ad4:5ca5:0:b0:42c:4daa:ea3b with SMTP id q5-20020ad45ca5000000b0042c4daaea3bmr14948757qvh.99.1646080690461; Mon, 28 Feb 2022 12:38:10 -0800 (PST) Received: from kolga-mac-1.vpn.netapp.com ([2600:1700:6a10:2e90:4cc0:8dcd:bb8c:75c2]) by smtp.gmail.com with ESMTPSA id p20-20020a05620a22b400b00648ca1458b4sm5457606qkh.5.2022.02.28.12.38.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Feb 2022 12:38:09 -0800 (PST) From: Olga Kornievskaia To: trond.myklebust@hammerspace.com, anna.schumaker@netapp.com Cc: linux-nfs@vger.kernel.org Subject: [RFC PATCH 3/3] NFSv4.1 destroy trunkable transport when destroying the session Date: Mon, 28 Feb 2022 15:38:04 -0500 Message-Id: <20220228203804.61803-4-olga.kornievskaia@gmail.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) In-Reply-To: <20220228203804.61803-1-olga.kornievskaia@gmail.com> References: <20220228203804.61803-1-olga.kornievskaia@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Olga Kornievskaia Trunking connections to different IPs represending the same server are initially discovered and associated with a session. It stands to reason that once the session is destroyed those connections might no longer be representing the same server for the newly created session. This patch proposed that when the sesssion is destroyed, also iterate thru available transports and terminate any trunkable connections. Main transport and nconnect connections are not effected. Signed-off-by: Olga Kornievskaia --- fs/nfs/nfs4proc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 73a9b6de666c..08597e2e0571 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -9193,6 +9193,7 @@ int nfs4_proc_destroy_session(struct nfs4_session *session, if (status) dprintk("NFS: Got error %d from the server on DESTROY_SESSION. " "Session has been destroyed regardless...\n", status); + rpc_clnt_destroy_trunked_xprts(session->clp->cl_rpcclient); return status; }