Re: [PATCH v2 2/6] super: simplify user_get_super()

From: Jan Kara
Date: Mon Mar 31 2025 - 05:59:00 EST


On Sat 29-03-25 09:42:15, Christian Brauner wrote:
> Make it easier to read and remove one level of identation.
>
> Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

> ---
> fs/super.c | 29 +++++++++++++++--------------
> 1 file changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/fs/super.c b/fs/super.c
> index dc14f4bf73a6..b1acfc38ba0c 100644
> --- a/fs/super.c
> +++ b/fs/super.c
> @@ -987,20 +987,21 @@ struct super_block *user_get_super(dev_t dev, bool excl)
>
> spin_lock(&sb_lock);
> list_for_each_entry(sb, &super_blocks, s_list) {
> - if (sb->s_dev == dev) {
> - bool locked;
> -
> - sb->s_count++;
> - spin_unlock(&sb_lock);
> - /* still alive? */
> - locked = super_lock(sb, excl);
> - if (locked)
> - return sb; /* caller will drop */
> - /* nope, got unmounted */
> - spin_lock(&sb_lock);
> - __put_super(sb);
> - break;
> - }
> + bool locked;
> +
> + if (sb->s_dev != dev)
> + continue;
> +
> + sb->s_count++;
> + spin_unlock(&sb_lock);
> +
> + locked = super_lock(sb, excl);
> + if (locked)
> + return sb;
> +
> + spin_lock(&sb_lock);
> + __put_super(sb);
> + break;
> }
> spin_unlock(&sb_lock);
> return NULL;
>
> --
> 2.47.2
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR