]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
super: simplify user_get_super()
authorChristian Brauner <brauner@kernel.org>
Sat, 29 Mar 2025 08:42:15 +0000 (09:42 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 7 Apr 2025 07:37:16 +0000 (09:37 +0200)
Make it easier to read and remove one level of identation.

Link: https://lore.kernel.org/r/20250329-work-freeze-v2-2-a47af37ecc3d@kernel.org
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/super.c

index dc14f4bf73a6357c16c53d98342ba6a548e7507e..b1acfc38ba0c698d1949ea9d3be84e21e490fccb 100644 (file)
@@ -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;