From patchwork Thu Nov 8 17:35:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10674729 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B3BBB13BF for ; Thu, 8 Nov 2018 17:37:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A16612E076 for ; Thu, 8 Nov 2018 17:37:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 94CA62E170; Thu, 8 Nov 2018 17:37:02 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 20E1E2E076 for ; Thu, 8 Nov 2018 17:37:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727027AbeKIDNd (ORCPT ); Thu, 8 Nov 2018 22:13:33 -0500 Received: from mail-it1-f193.google.com ([209.85.166.193]:53757 "EHLO mail-it1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727005AbeKIDNd (ORCPT ); Thu, 8 Nov 2018 22:13:33 -0500 Received: by mail-it1-f193.google.com with SMTP id r12-v6so2775734ita.3 for ; Thu, 08 Nov 2018 09:37:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=co0Vhl0O1U9AJ4ltMtKCVR8fTQuM4YDEuLAVVO9W4G4=; b=Lpz4jBARWLafaWuysMyx33BNw4gLIk0F2oXAT/1L9KC2Fa3HNr/FN+kPvs4JZ4UUvc dn5LIeeeB0P0/Lv55xm9rYgpO07ruzCaEOexCVJNcfgmLwmgU5aavbJNc85LBoghY1HM WnJnb/naZQjC6P31bPl5Sk3qkjjcTCyt39L9b4kTSOB2+jBkRYU2YBs1l0phHufEOe9i 97s/yoLFjtq+QTf33mGp0pVDKBGjEZ1p19sEHDtzPUhYs6+h3IyNq+Zk3x3iSBAkMYO4 +axGxGbQqIDNyL44AY2VuXN6lpN+erbMuI5glWVQLHyD/6Yv5djgs7GPbKs9xCO6bdPu LfNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=co0Vhl0O1U9AJ4ltMtKCVR8fTQuM4YDEuLAVVO9W4G4=; b=QQRERDqxeXvBg3mptbIdMW5PMd73fPAt1XfXwxf53dUmjKqMDUSSP25K+/kd6Qe9Xg VBAOseSvh6VLSIo5x52KhTd8qKl2HdDMys517oHtmPqvuoY6L5jZj6V/W3nUnCXc3VpN n26F6GbZ7NAkbhpjoeqlP9zTPnVUktGQmN66AAopqcIHyPAYa3uDycg6osyPfWk105t3 Maf+ya+W3h/wcZp/dLLkntH+TeKNDL0kaisPFzA06ptcExz7nh4M3seFJqEkNcboGMWJ rpsZN1QvFtQdjafisNNlMl/maHZ2IIeRdFe2eXv8gX/UCHBpkhyqo5RLbgXPCZbAj5jF r7Hw== X-Gm-Message-State: AGRZ1gLFr1CkJNBfUvFwj49hSyuWlOxNdOS7U5q+Jd+fni46AYftI9G8 PvbfqZY23VG6xk8ytSj7UBF06Bs= X-Google-Smtp-Source: AJdET5fzh59KXYdL0oJhEbsNajJf9mC0LwTa5sOZrRvK665X4XBbZk/TX1oxEprrJ9LXQ6hoZk8zTA== X-Received: by 2002:a24:1a55:: with SMTP id 82-v6mr2028246iti.1.1541698619569; Thu, 08 Nov 2018 09:36:59 -0800 (PST) Received: from localhost.localdomain (c-68-40-195-73.hsd1.mi.comcast.net. [68.40.195.73]) by smtp.gmail.com with ESMTPSA id f64-v6sm1383121ioa.54.2018.11.08.09.36.58 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 08 Nov 2018 09:36:58 -0800 (PST) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 1/2] NFSv4: Don't exit the state manager without clearing NFS4CLNT_MANAGER_RUNNING Date: Thu, 8 Nov 2018 12:35:55 -0500 Message-Id: <20181108173556.9295-1-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP If we exit the NFSv4 state manager due to a umount, then we can end up leaving the NFS4CLNT_MANAGER_RUNNING flag set. If another mount causes the nfs4_client to be rereferenced before it is destroyed, then we end up never being able to recover state. Fixes: 47c2199b6eb5 ("NFSv4.1: Ensure state manager thread dies on last ...") Signed-off-by: Trond Myklebust Cc: stable@vger.kernel.org # v4.15+ --- fs/nfs/nfs4state.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 62ae0fd345ad..98d1b6a6646a 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -2601,11 +2601,12 @@ static void nfs4_state_manager(struct nfs_client *clp) nfs4_clear_state_manager_bit(clp); /* Did we race with an attempt to give us more work? */ if (clp->cl_state == 0) - break; + return; if (test_and_set_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) != 0) - break; + return; } while (refcount_read(&clp->cl_count) > 1); - return; + goto out_drain; + out_error: if (strlen(section)) section_sep = ": "; @@ -2613,6 +2614,7 @@ static void nfs4_state_manager(struct nfs_client *clp) " with error %d\n", section_sep, section, clp->cl_hostname, -status); ssleep(1); +out_drain: nfs4_end_drain_session(clp); nfs4_clear_state_manager_bit(clp); } From patchwork Thu Nov 8 17:35:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10674731 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8C21D13BF for ; Thu, 8 Nov 2018 17:37:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7A9542E076 for ; Thu, 8 Nov 2018 17:37:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6EA812E1BE; Thu, 8 Nov 2018 17:37:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 126962E076 for ; Thu, 8 Nov 2018 17:37:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726922AbeKIDNe (ORCPT ); Thu, 8 Nov 2018 22:13:34 -0500 Received: from mail-it1-f195.google.com ([209.85.166.195]:32939 "EHLO mail-it1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726751AbeKIDNe (ORCPT ); Thu, 8 Nov 2018 22:13:34 -0500 Received: by mail-it1-f195.google.com with SMTP id p11-v6so2352956itf.0 for ; Thu, 08 Nov 2018 09:37:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=83M9MuuyfBLXZ/YL/qV9yuohrUfZzP/MjRMpSeq4O70=; b=lUs5mC7LVsPisjZSPUA84ghohxM/hoJKSWr3uKEqEkvWkTb6fbPYesO7XliDCh4I/x zl48cPqgdG8sfGi0Gi+X8KsZB1nsG147gzVJe0Uo7BGUODPEwtV58yGzGlaBWRprSJXN rQEm1HqpO+KH0gIWClh817sUUSnM1CaZg6aoKn5YB+JjJng+fN7EK4hbz/1q3YRSOPoB FQusbRVn6Xu3sLQ7S3SIupouUCCRz1cJf2bF6jA0Vv0SeHUn63vi0MzKKBIHIGGHbWGZ Wj0/zB3qUy9d32Pj/IqQVvjNQPurgk9+wySFg6Hi82J3GRi6zyjZOgQ9uGH8Nv3fUzEA MnFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=83M9MuuyfBLXZ/YL/qV9yuohrUfZzP/MjRMpSeq4O70=; b=X6ewDkhbgNvKipdRTW3lroDwbgtFwFGxFXtExD5I4zG/5hssxY0BfW3GqSWGqBN4/q 9yP2uUUFAyf2W86E8gVRPbcDma5kB8uhN8R6nwhgmuwkriV1ihpexIBySKEHa9uP47s5 /QoeyX60vol3VS/62izFAnOu+vWn59utd2WYY/cizr4PzQqcUH+UOyKWiZtyi/SkF3NC ZLV37h45rvZOTldruBgV+N44gbbx25ruTSrTcuS2uq0CB+p13hViyZ50tzrsP+FQfViA eo+flTWd55Ae5VFhVwqJ/6ys52+nP/JFgesSH82kvf75E+n6HPkU0vHXOq979/AhTwqJ nzHw== X-Gm-Message-State: AGRZ1gIQF1/azz2tDrW3v23EhY8KfxmnxHEhtN/jvCGvBmMyyCmqIHF6 rP2sFywb+Rkm0xmwj1vnu1X31ac= X-Google-Smtp-Source: AJdET5er1WDFkFEPiFKvGVj9jh2O7IlQ0jChF5UYPvZDX3S/7CbSkSLity1KsAMY/YunRAg7jIyOUA== X-Received: by 2002:a24:560a:: with SMTP id o10-v6mr1839945itb.2.1541698621051; Thu, 08 Nov 2018 09:37:01 -0800 (PST) Received: from localhost.localdomain (c-68-40-195-73.hsd1.mi.comcast.net. [68.40.195.73]) by smtp.gmail.com with ESMTPSA id f64-v6sm1383121ioa.54.2018.11.08.09.36.59 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 08 Nov 2018 09:37:00 -0800 (PST) From: Trond Myklebust X-Google-Original-From: Trond Myklebust To: linux-nfs@vger.kernel.org Subject: [PATCH 2/2] NFSv4: Ensure that the state manager exits the loop on SIGKILL Date: Thu, 8 Nov 2018 12:35:56 -0500 Message-Id: <20181108173556.9295-2-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181108173556.9295-1-trond.myklebust@hammerspace.com> References: <20181108173556.9295-1-trond.myklebust@hammerspace.com> MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Trond Myklebust --- fs/nfs/nfs4state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 98d1b6a6646a..ffea57885394 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -2604,7 +2604,7 @@ static void nfs4_state_manager(struct nfs_client *clp) return; if (test_and_set_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) != 0) return; - } while (refcount_read(&clp->cl_count) > 1); + } while (refcount_read(&clp->cl_count) > 1 && !signalled()); goto out_drain; out_error: