[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250915-geowissenschaften-euphorie-3413b3f9fedd@brauner>
Date: Mon, 15 Sep 2025 16:16:21 +0200
From: Christian Brauner <brauner@...nel.org>
To: Mateusz Guzik <mjguzik@...il.com>
Cc: viro@...iv.linux.org.uk, jack@...e.cz, linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org, josef@...icpanda.com, kernel-team@...com, amir73il@...il.com,
linux-btrfs@...r.kernel.org, linux-ext4@...r.kernel.org, linux-xfs@...r.kernel.org,
ocfs2-devel@...ts.linux.dev
Subject: Re: [PATCH v3 2/4] fs: hide ->i_state handling behind accessors
On Mon, Sep 15, 2025 at 03:48:29PM +0200, Mateusz Guzik wrote:
> On Mon, Sep 15, 2025 at 3:41 PM Christian Brauner <brauner@...nel.org> wrote:
> >
> > On Mon, Sep 15, 2025 at 03:27:16PM +0200, Mateusz Guzik wrote:
> > > On Mon, Sep 15, 2025 at 2:41 PM Christian Brauner <brauner@...nel.org> wrote:
> > > >
> > > > On Thu, Sep 11, 2025 at 06:55:55AM +0200, Mateusz Guzik wrote:
> > > > > Signed-off-by: Mateusz Guzik <mjguzik@...il.com>
> > > > > ---
> > > >
> > > > I would do:
> > > >
> > > > inode_state()
> > > > inode_state_raw()
> > > >
> > > > Similar to
> > > >
> > > > rcu_derefence()
> > > > rcu_dereference_raw()
> > > >
> > >
> > > I don't follow how to fit this in here.
> > >
> > > Here is the complete list:
> > > inode_state_read
> > > inode_state_read_unstable
> > >
> > > first is a plain read + lockdep assert, second is a READ_ONCE
> > >
> > > inode_state_add
> > > inode_state_add_unchecked
> > > inode_state_del
> > > inode_state_del_unchecked
> > > inode_state_set_unchecked
> > >
> > > Routine with _unchecked forego asserts, otherwise the op checks lockdep.
> > >
> > > I guess _unchecked could be _raw, but I don't see how to fit this into
> > > the read thing.
> >
> > _raw() is adapted from rcu which is why I'm very familiar with what it
> > means: rcu_dereference() performs checks and rcu_dereference_raw()
> > doesn't. It's just a naming convention that we already have and are
> > accustomed to.
> >
> > >
> > > Can you just spell out the names you want for all of these?
> >
> > just use _raw() imho
> >
>
> For these no problem:
> inode_state_add
> inode_state_add_raw
> inode_state_del
> inode_state_del_raw
> inode_state_set_raw
>
> But for the read side:
> inode_state_read
> inode_state_read_unstable
>
> The _unstable thing makes sure to prevent surprise re-reads
> specifically because the lock is not expected to be held.
> Giving it the _raw suffix would suggest it is plain inode_state_read
> without lockdep, which is imo misleading.
>
> But I'm not going to die on this hill.
Ok.
Powered by blists - more mailing lists