Re: [PATCH RFC v2 05/18] ext4: use anonymous devices for KUnit test superblocks

From: Jan Kara

Date: Mon Jun 22 2026 - 09:52:39 EST


On Tue 16-06-26 16:08:21, Christian Brauner wrote:
> 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().
>
> Signed-off-by: Christian Brauner (Amutable) <brauner@xxxxxxxxxx>

Ok. Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

> ---
> fs/ext4/extents-test.c | 9 ++-------
> fs/ext4/mballoc-test.c | 9 ++-------
> 2 files changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/fs/ext4/extents-test.c b/fs/ext4/extents-test.c
> index bd7795a82607..c3836ecb89f9 100644
> --- a/fs/ext4/extents-test.c
> +++ b/fs/ext4/extents-test.c
> @@ -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)
> diff --git a/fs/ext4/mballoc-test.c b/fs/ext4/mballoc-test.c
> index d90da44aadbd..a3b33ed2c172 100644
> --- a/fs/ext4/mballoc-test.c
> +++ b/fs/ext4/mballoc-test.c
> @@ -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)
>
> --
> 2.47.3
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR