Fix warnning that sbi->s_freeclusters_counter is used before initialization. Signed-off-by: Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx> --- fs/ext4/mballoc-test.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/fs/ext4/mballoc-test.c b/fs/ext4/mballoc-test.c index 4d9eb4807c98..00fc0f8b3809 100644 --- a/fs/ext4/mballoc-test.c +++ b/fs/ext4/mballoc-test.c @@ -45,6 +45,7 @@ static struct file_system_type mbt_fs_type = { static int mbt_mb_init(struct super_block *sb) { + ext4_fsblk_t block; int ret; /* needed by ext4_mb_init->bdev_nonrot(sb->s_bdev) */ @@ -69,8 +70,16 @@ static int mbt_mb_init(struct super_block *sb) if (ret != 0) goto err_out; + block = ext4_count_free_clusters(sb); + ret = percpu_counter_init(&EXT4_SB(sb)->s_freeclusters_counter, block, + GFP_KERNEL); + if (ret != 0) + goto err_mb_release; + return 0; +err_mb_release: + ext4_mb_release(sb); err_out: kfree(sb->s_bdev->bd_queue); kfree(sb->s_bdev); @@ -79,6 +88,7 @@ static int mbt_mb_init(struct super_block *sb) static void mbt_mb_release(struct super_block *sb) { + percpu_counter_destroy(&EXT4_SB(sb)->s_freeclusters_counter); ext4_mb_release(sb); kfree(sb->s_bdev->bd_queue); kfree(sb->s_bdev); @@ -333,7 +343,7 @@ static int mbt_kunit_init(struct kunit *test) ext4_mb_mark_context, ext4_mb_mark_context_stub); - /* stub function will be called in mt_mb_init->ext4_mb_init */ + /* stub function will be called in mbt_mb_init->ext4_mb_init */ if (mbt_mb_init(sb) != 0) { mbt_ctx_release(sb); mbt_ext4_free_super_block(sb); @@ -534,6 +544,7 @@ static void test_mark_diskspace_used(struct kunit *test) struct test_range ranges[TEST_RANGE_COUNT]; int i; + mbt_generate_test_ranges(sb, ranges, TEST_RANGE_COUNT); ac.ac_status = AC_STATUS_FOUND; -- 2.30.0