mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
ext4: initialize superblock fields in the kballoc-test.c kunit tests
commit 82e6381e23 upstream.
Various changes in the "ext4: better scalability for ext4 block
allocation" patch series have resulted in kunit test failures, most
notably in the test_new_blocks_simple and the test_mb_mark_used tests.
The root cause of these failures is that various in-memory ext4 data
structures were not getting initialized, and while previous versions
of the functions exercised by the unit tests didn't use these
structure members, this was arguably a test bug.
Since one of the patches in the block allocation scalability patches
is a fix which is has a cc:stable tag, this commit also has a
cc:stable tag.
CC: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20250714130327.1830534-1-libaokun1@huawei.com
Link: https://patch.msgid.link/20250725021550.3177573-1-yi.zhang@huaweicloud.com
Link: https://patch.msgid.link/20250725021654.3188798-1-yi.zhang@huaweicloud.com
Reported-by: Guenter Roeck <linux@roeck-us.net>
Closes: https://lore.kernel.org/linux-ext4/b0635ad0-7ebf-4152-a69b-58e7e87d5085@roeck-us.net/
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c0d7c98272
commit
a2bbe1fcd3
|
|
@ -155,6 +155,7 @@ static struct super_block *mbt_ext4_alloc_super_block(void)
|
|||
bgl_lock_init(sbi->s_blockgroup_lock);
|
||||
|
||||
sbi->s_es = &fsb->es;
|
||||
sbi->s_sb = sb;
|
||||
sb->s_fs_info = sbi;
|
||||
|
||||
up_write(&sb->s_umount);
|
||||
|
|
@ -801,6 +802,10 @@ static void test_mb_mark_used(struct kunit *test)
|
|||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
|
||||
grp->bb_free = EXT4_CLUSTERS_PER_GROUP(sb);
|
||||
grp->bb_largest_free_order = -1;
|
||||
grp->bb_avg_fragment_size_order = -1;
|
||||
INIT_LIST_HEAD(&grp->bb_largest_free_order_node);
|
||||
INIT_LIST_HEAD(&grp->bb_avg_fragment_size_node);
|
||||
mbt_generate_test_ranges(sb, ranges, TEST_RANGE_COUNT);
|
||||
for (i = 0; i < TEST_RANGE_COUNT; i++)
|
||||
test_mb_mark_used_range(test, &e4b, ranges[i].start,
|
||||
|
|
@ -873,6 +878,10 @@ static void test_mb_free_blocks(struct kunit *test)
|
|||
ext4_unlock_group(sb, TEST_GOAL_GROUP);
|
||||
|
||||
grp->bb_free = 0;
|
||||
grp->bb_largest_free_order = -1;
|
||||
grp->bb_avg_fragment_size_order = -1;
|
||||
INIT_LIST_HEAD(&grp->bb_largest_free_order_node);
|
||||
INIT_LIST_HEAD(&grp->bb_avg_fragment_size_node);
|
||||
memset(bitmap, 0xff, sb->s_blocksize);
|
||||
|
||||
mbt_generate_test_ranges(sb, ranges, TEST_RANGE_COUNT);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user