From patchwork Thu Feb 27 21:16:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Simmons X-Patchwork-Id: 11410499 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7742517E0 for ; Thu, 27 Feb 2020 21:39:54 +0000 (UTC) Received: from pdx1-mailman02.dreamhost.com (pdx1-mailman02.dreamhost.com [64.90.62.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 603B224690 for ; Thu, 27 Feb 2020 21:39:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 603B224690 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lustre-devel-bounces@lists.lustre.org Received: from pdx1-mailman02.dreamhost.com (localhost [IPv6:::1]) by pdx1-mailman02.dreamhost.com (Postfix) with ESMTP id EF018349440; Thu, 27 Feb 2020 13:32:28 -0800 (PST) X-Original-To: lustre-devel@lists.lustre.org Delivered-To: lustre-devel-lustre.org@pdx1-mailman02.dreamhost.com Received: from smtp3.ccs.ornl.gov (smtp3.ccs.ornl.gov [160.91.203.39]) by pdx1-mailman02.dreamhost.com (Postfix) with ESMTP id 8871934889B for ; Thu, 27 Feb 2020 13:20:58 -0800 (PST) Received: from star.ccs.ornl.gov (star.ccs.ornl.gov [160.91.202.134]) by smtp3.ccs.ornl.gov (Postfix) with ESMTP id 4EE17919B; Thu, 27 Feb 2020 16:18:19 -0500 (EST) Received: by star.ccs.ornl.gov (Postfix, from userid 2004) id 4DD3F46D; Thu, 27 Feb 2020 16:18:19 -0500 (EST) From: James Simmons To: Andreas Dilger , Oleg Drokin , NeilBrown Date: Thu, 27 Feb 2020 16:16:22 -0500 Message-Id: <1582838290-17243-515-git-send-email-jsimmons@infradead.org> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1582838290-17243-1-git-send-email-jsimmons@infradead.org> References: <1582838290-17243-1-git-send-email-jsimmons@infradead.org> Subject: [lustre-devel] [PATCH 514/622] lustre: llite: Don't clear d_fsdata in ll_release() X-BeenThere: lustre-devel@lists.lustre.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "For discussing Lustre software development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lustre Development List MIME-Version: 1.0 Errors-To: lustre-devel-bounces@lists.lustre.org Sender: "lustre-devel" From: NeilBrown The whole point of using rcu_free() is that some code might still be accessing the dentry (e.g. lockless lookup) and so the dentry cannot be freed until the end of the grace period. As lockless lookup can accesses d_fsdata -- ll_dcompare calls d_lustre_invalid() -- we also mustn't clear d_fsdata before the end of the grace period. We don't need to clear it at all - by the time it is freed, the inode will no longer be accessed. Fixes: 7126bc2e8d60c ("lustre: switch to use of ->d_init()") Signed-off-by: NeilBrown Reviewed-by: James Simmons --- fs/lustre/llite/dcache.c | 1 - 1 file changed, 1 deletion(-) diff --git a/fs/lustre/llite/dcache.c b/fs/lustre/llite/dcache.c index 2dfe12a..3230d32 100644 --- a/fs/lustre/llite/dcache.c +++ b/fs/lustre/llite/dcache.c @@ -63,7 +63,6 @@ static void ll_release(struct dentry *de) kfree(lld->lld_it); } - de->d_fsdata = NULL; call_rcu(&lld->lld_rcu_head, free_dentry_data); }