Received: by 2002:a4a:311b:0:0:0:0:0 with SMTP id k27-v6csp4798537ooa; Tue, 14 Aug 2018 10:42:05 -0700 (PDT) X-Google-Smtp-Source: AA+uWPziqfRRUiFakN157pT26jhsF5ZtxKAV1s/ug2i22Q2xjmCZIqp44FeZlZUB/qoQXtj2eXKw X-Received: by 2002:a17:902:6f16:: with SMTP id w22-v6mr2310056plk.127.1534268525640; Tue, 14 Aug 2018 10:42:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534268525; cv=none; d=google.com; s=arc-20160816; b=dOmLGArdARxKqT0qBjGauuP2vPnBhqV4+PzT22CcHnTEeDNC+GNs2vlEtwhXtSPy5z qqq6QzekM3OAAOOTyKg/i26jY4z+G4FbXU+MPb7zW59xv0xkD6QyKg1yNb0D+s+PjMas OyQ55qapr6oJAiqe8oJPB2m6xpDqSY0+9OrqpRkJ/DqWywskpcVyAju2LyYAz6GQh24f A6jVYVlSy2SQ3e6YLZJRNeVSUwxbdVp5EHkjUxiSlikDQGyXpgvwS/uVAhfC7Jh32N4J nfiGEZTL0qdSJpLjKVPVwEn5y4PcgCBr4s9T0Se9bLiXBmqqEI7JCHAFfhHD9UWqdDag 6P+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=mJowxuOfOZZ8F37Ek+C8N96WSFAw4L7sx8xcGLIgr/U=; b=iRgtxMxrZHB/olGdAHXQjm5WgdDKKm+nUWuzCQNcvNnWKZ2P6g9b4Advi6/T63Irqv UcBirij73nGUeNEe3imGH5RyxkjIMh7Or26UliJjEzZzNIPsjVGxzr8OyRdphINOfuNH 7o7WzxXEPaoT/aNs+hyENBZIvZRYRKDIKovGUk3m7HjvxgWiIjrCK2sz9aDevvXJsfPe LOIxkKf8sNNxYKfOLX2+SuMI0Dr0CX08+HXWLkoODeyy7TW0fUf/NgOQyzUnTLVg2b06 5BUO7zttHspN1f34io4Xf3k+p9KOlPP3XTvh5afj1FwzH9xLQ0HvZIgzovJ2G1319FmN zbEQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o20-v6si21452751pgh.319.2018.08.14.10.41.50; Tue, 14 Aug 2018 10:42:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389201AbeHNU2D (ORCPT + 99 others); Tue, 14 Aug 2018 16:28:03 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:58568 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728516AbeHNU2B (ORCPT ); Tue, 14 Aug 2018 16:28:01 -0400 Received: from localhost (unknown [194.244.16.108]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 5036BD4A; Tue, 14 Aug 2018 17:39:51 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Al Viro Subject: [PATCH 4.9 011/107] root dentries need RCU-delayed freeing Date: Tue, 14 Aug 2018 19:16:34 +0200 Message-Id: <20180814171521.473522006@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180814171520.883143803@linuxfoundation.org> References: <20180814171520.883143803@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Al Viro commit 90bad5e05bcdb0308cfa3d3a60f5c0b9c8e2efb3 upstream. Since mountpoint crossing can happen without leaving lazy mode, root dentries do need the same protection against having their memory freed without RCU delay as everything else in the tree. It's partially hidden by RCU delay between detaching from the mount tree and dropping the vfsmount reference, but the starting point of pathwalk can be on an already detached mount, in which case umount-caused RCU delay has already passed by the time the lazy pathwalk grabs rcu_read_lock(). If the starting point happens to be at the root of that vfsmount *and* that vfsmount covers the entire filesystem, we get trouble. Fixes: 48a066e72d97 ("RCU'd vsfmounts") Cc: stable@vger.kernel.org Signed-off-by: Al Viro Signed-off-by: Greg Kroah-Hartman --- fs/dcache.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) --- a/fs/dcache.c +++ b/fs/dcache.c @@ -1914,10 +1914,12 @@ struct dentry *d_make_root(struct inode if (root_inode) { res = __d_alloc(root_inode->i_sb, NULL); - if (res) + if (res) { + res->d_flags |= DCACHE_RCUACCESS; d_instantiate(res, root_inode); - else + } else { iput(root_inode); + } } return res; }