]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fs: unlock the superblock during iterate_supers_type
authorDarrick J. Wong <djwong@kernel.org>
Wed, 11 Jun 2025 16:40:44 +0000 (09:40 -0700)
committerChristian Brauner <brauner@kernel.org>
Thu, 12 Jun 2025 12:27:39 +0000 (14:27 +0200)
This function takes super_lock in shared mode, so it should release the
same lock.

Cc: stable@vger.kernel.org # v6.16-rc1
Fixes: af7551cf13cf7f ("super: remove pointless s_root checks")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Link: https://lore.kernel.org/20250611164044.GF6138@frogsfrogsfrogs
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/super.c

index 21799e213fd74709eb334b799b1be81613eeaa7f..80418ca8e215bb83f037da7961c64eec265bf339 100644 (file)
@@ -964,8 +964,10 @@ void iterate_supers_type(struct file_system_type *type,
                spin_unlock(&sb_lock);
 
                locked = super_lock_shared(sb);
-               if (locked)
+               if (locked) {
                        f(sb, arg);
+                       super_unlock_shared(sb);
+               }
 
                spin_lock(&sb_lock);
                if (p)