[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250611233306.GA1647736@ZenIV>
Date: Thu, 12 Jun 2025 00:33:06 +0100
From: Al Viro <viro@...iv.linux.org.uk>
To: NeilBrown <neil@...wn.name>
Cc: Christian Brauner <brauner@...nel.org>, Jan Kara <jack@...e.cz>,
David Howells <dhowells@...hat.com>, Tyler Hicks <code@...icks.com>,
Chuck Lever <chuck.lever@...cle.com>,
Jeff Layton <jlayton@...nel.org>,
Miklos Szeredi <miklos@...redi.hu>,
Amir Goldstein <amir73il@...il.com>, Kees Cook <kees@...nel.org>,
Joel Granados <joel.granados@...nel.org>,
Namjae Jeon <linkinjeon@...nel.org>,
Steve French <smfrench@...il.com>,
Sergey Senozhatsky <senozhatsky@...omium.org>,
netfs@...ts.linux.dev, linux-kernel@...r.kernel.org,
ecryptfs@...r.kernel.org, linux-fsdevel@...r.kernel.org,
linux-nfs@...r.kernel.org, linux-unionfs@...r.kernel.org,
linux-cifs@...r.kernel.org
Subject: Re: [PATCH 2/2] fs/proc: take rcu_read_lock() in proc_sys_compare()
On Thu, Jun 12, 2025 at 08:57:03AM +1000, NeilBrown wrote:
> However there is no guarantee that this lock is held by d_same_name()
> (the caller of ->d_compare). In particularly d_alloc_parallel() calls
> d_same_name() after rcu_read_unlock().
d_alloc_parallel() calls d_same_name() with dentry being pinned;
if it's positive, nothing's going to happen to its inode,
rcu_read_lock() or not. It can go from negative to positive,
but that's it.
Why is it needed? We do care about possibly NULL inode (basically,
when RCU dcache lookup runs into a dentry getting evicted right
under it), but that's not relevant here.
Powered by blists - more mailing lists