[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250329-stumpf-pavian-090ff0c7b74f@brauner>
Date: Sat, 29 Mar 2025 08:34:15 +0100
From: Christian Brauner <brauner@...nel.org>
To: James Bottomley <James.Bottomley@...senpartnership.com>
Cc: linux-fsdevel@...r.kernel.org, jack@...e.cz,
linux-kernel@...r.kernel.org, mcgrof@...nel.org, hch@...radead.org, david@...morbit.com,
rafael@...nel.org, djwong@...nel.org, pavel@...nel.org, peterz@...radead.org,
mingo@...hat.com, will@...nel.org, boqun.feng@...il.com
Subject: Re: [PATCH 5/6] super: use common iterator (Part 2)
On Fri, Mar 28, 2025 at 02:58:29PM -0400, James Bottomley wrote:
> On Fri, 2025-03-28 at 17:15 +0100, Christian Brauner wrote:
> [...]
> > +static inline void super_cb_grabbed(struct super_block *sb,
> > + void (*f)(struct super_block *,
> > void *),
> > + void *arg)
> > +{
> > + if (super_lock_excl(sb)) {
> > + bool active = atomic_inc_not_zero(&sb->s_active);
> > + super_unlock_excl(sb);
> > + if (active)
> > + f(sb, arg);
> > + deactivate_super(sb);
>
> I don't think this can be right: if we fail to increment s_active
> because it's zero, we shouldn't call deactivate_super(), should we?
Fixed in-tree. Thanks.
Powered by blists - more mailing lists