2023-08-02 16:58:33

by Wang Jianjian

[permalink] [raw]
Subject: [PATCH 2/2] ext4: Add correct group descriptors and reserved GDT blocks to system zone

When setup_system_zone, flex_bg is not initialzied so it is always 1.
ext4_num_base_meta_blocks() returns the meta blocks in this group
including reserved GDT blocks, so let's use this helper.

Signed-off-by: Wang Jianjian <[email protected]>
---
fs/ext4/block_validity.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c
index 5504f72bbbbe..558e487a0b53 100644
--- a/fs/ext4/block_validity.c
+++ b/fs/ext4/block_validity.c
@@ -215,7 +215,6 @@ int ext4_setup_system_zone(struct super_block *sb)
struct ext4_system_blocks *system_blks;
struct ext4_group_desc *gdp;
ext4_group_t i;
- int flex_size = ext4_flex_bg_size(sbi);
int ret;

system_blks = kzalloc(sizeof(*system_blks), GFP_KERNEL);
@@ -224,11 +223,11 @@ int ext4_setup_system_zone(struct super_block *sb)

for (i=0; i < ngroups; i++) {
cond_resched();
- if (ext4_bg_has_super(sb, i) &&
- ((i < 5) || ((i % flex_size) == 0))) {
+ unsigned int meta_blks = ext4_num_base_meta_blocks(sb, i);
+ if (meta_blks != 0) {
ret = add_system_zone(system_blks,
ext4_group_first_block_no(sb, i),
- ext4_bg_num_gdb(sb, i) + 1, 0);
+ meta_blks, 0);
if (ret)
goto err;
}
--
2.34.3



2024-04-01 14:24:04

by Luis Henriques

[permalink] [raw]
Subject: Re: [PATCH 2/2] ext4: Add correct group descriptors and reserved GDT blocks to system zone

"Theodore Ts'o" <[email protected]> writes:

> On Thu, Aug 03, 2023 at 12:28:40AM +0800, Wang Jianjian wrote:
>> When setup_system_zone, flex_bg is not initialzied so it is always 1.
>> ext4_num_base_meta_blocks() returns the meta blocks in this group
>> including reserved GDT blocks, so let's use this helper.
>>
>> Signed-off-by: Wang Jianjian <[email protected]>
>
> Thanks for the patch. I ended up collapsing the two patches into a
> single one, and then fixed up some checkpatch errors.

Sorry for revisiting this old thread, but it looks like these patches
(commit 68228da51c9a "ext4: add correct group descriptors and reserved GDT
blocks to system zone") broke fstest ext4/059.

A (very!) quick look seems to show that it's related with the very fact
that sbi->s_es->s_reserved_gdt_blocks are now taken into account to
compute the number of blocks (which is the point of the patch, of course).
Maybe the test needs to be fixed, as it messes up with the GDT reserved
blocks...?

Cheers,
--
Luis

2024-04-07 10:13:36

by wangjianjian (C)

[permalink] [raw]
Subject: Re: [PATCH 2/2] ext4: Add correct group descriptors and reserved GDT blocks to system zone

Hi,
Let me test it and fix it if it fails.

Regards,

2024-04-10 08:39:26

by Luis Henriques

[permalink] [raw]
Subject: Re: [PATCH 2/2] ext4: Add correct group descriptors and reserved GDT blocks to system zone

On Sun 07 Apr 2024 06:13:20 PM +08, wangjianjian (C) wrote;

> Hi,
> Let me test it and fix it if it fails.

Thank you for looking into this. I'll also see if I can find out more
details on this.

Cheers,
--
Luis