[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <db131c4abf29ea8205d6e761ac8227f5837540b5.camel@HansenPartnership.com>
Date: Fri, 28 Mar 2025 14:58:29 -0400
From: James Bottomley <James.Bottomley@...senPartnership.com>
To: Christian Brauner <brauner@...nel.org>, linux-fsdevel@...r.kernel.org,
jack@...e.cz
Cc: 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, 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?
Regards,
James
Powered by blists - more mailing lists