All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wang Jianjian <wangjianjian0@foxmail.com>
To: linux-ext4@vger.kernel.org, tytso@mit.edu
Cc: wangjianjian0@foxmail.com
Subject: [PATCH] ext4: Add correct group descriptors and reserved GDT blocks to system zone
Date: Sun,  4 Jun 2023 00:33:50 +0800	[thread overview]
Message-ID: <tencent_4A474CC049B9E77D0F172468991EED5B9105@qq.com> (raw)

When setup_system_zone, flex_bg is not initialzied so it is always 1.
and when meta_bg enabled, group descriptors are located in the first,
second, and the last group of meta group.
And this patch also adds reserved GDT blocks to system zone.

Signed-off-by: Wang Jianjian <wangjianjian0@foxmail.com>
---
 fs/ext4/block_validity.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c
index 5504f72bbbbe..5df357763975 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,14 @@ 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 sb_num = ext4_bg_has_super(sb, i);
+		unsigned long gdb_num = ext4_bg_num_gdb(sb, i);
+		unsigned int rsvd_gdt = le16_to_cpu(sbi->es->s_reserved_gdt_blocks);
+
+		if (sb_num != 0 || gdb_num != 0) {
 			ret = add_system_zone(system_blks,
 					ext4_group_first_block_no(sb, i),
-					ext4_bg_num_gdb(sb, i) + 1, 0);
+					sb_num + gdb_num + rsvd_gdt, 0);
 			if (ret)
 				goto err;
 		}
-- 
2.34.3


             reply	other threads:[~2023-06-03 16:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-03 16:33 Wang Jianjian [this message]
2023-06-03 17:59 ` [PATCH] ext4: Add correct group descriptors and reserved GDT blocks to system zone kernel test robot
2023-06-03 18:10 ` kernel test robot
2023-06-04  3:45 ` Theodore Ts'o
2023-08-02 16:29   ` Wang Jianjian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tencent_4A474CC049B9E77D0F172468991EED5B9105@qq.com \
    --to=wangjianjian0@foxmail.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.