]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ext4: use anonymous devices for KUnit test superblocks
authorChristian Brauner <brauner@kernel.org>
Tue, 16 Jun 2026 14:08:21 +0000 (16:08 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 29 Jun 2026 08:31:52 +0000 (10:31 +0200)
The mballoc and extents KUnit tests create superblocks through
sget_fc() with a set callback that never assigns s_dev and a kill_sb
that only calls generic_shutdown_super().

The upcoming global device-to-superblock table registers every
superblock under its s_dev, so each superblock needs a unique device
number. Allocate a proper anonymous device via set_anon_super_fc() and
release it through kill_anon_super().

Link: https://patch.msgid.link/20260616-work-super-bdev_holder_global-v2-5-7df6b864028e@kernel.org
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/ext4/extents-test.c
fs/ext4/mballoc-test.c

index bd7795a82607d1b68e10cec393f95c6eb88d1146..c3836ecb89f9cc4e3fff49e43ccbe98fe1a2f9fb 100644 (file)
@@ -126,11 +126,6 @@ struct kunit_ext_test_param {
        struct kunit_ext_data_state exp_data_state[3];
 };
 
-static void ext_kill_sb(struct super_block *sb)
-{
-       generic_shutdown_super(sb);
-}
-
 static int ext_init_fs_context(struct fs_context *fc)
 {
        return 0;
@@ -138,13 +133,13 @@ static int ext_init_fs_context(struct fs_context *fc)
 
 static int ext_set(struct super_block *sb, struct fs_context *fc)
 {
-       return 0;
+       return set_anon_super_fc(sb, fc);
 }
 
 static struct file_system_type ext_fs_type = {
        .name            = "extents test",
        .init_fs_context = ext_init_fs_context,
-       .kill_sb         = ext_kill_sb,
+       .kill_sb         = kill_anon_super,
 };
 
 static void extents_kunit_exit(struct kunit *test)
index 0424b8b0b4c3c5f3d854c1523dc7765e11a5b427..d31780075c21e5a7d5ac8a8cf2e4693a4cc6213e 100644 (file)
@@ -59,11 +59,6 @@ static const struct super_operations mbt_sops = {
        .free_inode     = mbt_free_inode,
 };
 
-static void mbt_kill_sb(struct super_block *sb)
-{
-       generic_shutdown_super(sb);
-}
-
 static int mbt_init_fs_context(struct fs_context *fc)
 {
        return 0;
@@ -72,7 +67,7 @@ static int mbt_init_fs_context(struct fs_context *fc)
 static struct file_system_type mbt_fs_type = {
        .name                   = "mballoc test",
        .init_fs_context        = mbt_init_fs_context,
-       .kill_sb                = mbt_kill_sb,
+       .kill_sb                = kill_anon_super,
 };
 
 static int mbt_mb_init(struct super_block *sb)
@@ -136,7 +131,7 @@ static void mbt_mb_release(struct super_block *sb)
 
 static int mbt_set(struct super_block *sb, struct fs_context *fc)
 {
-       return 0;
+       return set_anon_super_fc(sb, fc);
 }
 
 static struct super_block *mbt_ext4_alloc_super_block(void)