Patchwork [1/4] ext4: do not copy gdt blocks for groups which do not have super when resizing

login
register
mail settings
Submitter Yongqiang Yang
Date Jan. 29, 2012, 4:01 p.m.
Message ID <1327852866-4448-2-git-send-email-xiaoqiangnk@gmail.com>
Download mbox | patch
Permalink /patch/148248/
State Superseded
Headers show

Comments

Yongqiang Yang - Jan. 29, 2012, 4:01 p.m.
There is no need to copy gdt blocks for groups which do not have super
in resizing code, so this patch let resize code skip the groups.

Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
---
 fs/ext4/resize.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

Patch

diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 59fa0be..9a6fb74 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -449,6 +449,9 @@  static int setup_new_flex_group_blocks(struct super_block *sb,
 		gdblocks = ext4_bg_num_gdb(sb, group);
 		start = ext4_group_first_block_no(sb, group);
 
+		if (!ext4_bg_has_super(sb, group))
+			goto handle_itb;
+
 		/* Copy all of the GDT blocks into the backup in this group */
 		for (j = 0, block = start + 1; j < gdblocks; j++, block++) {
 			struct buffer_head *gdb;
@@ -491,6 +494,7 @@  static int setup_new_flex_group_blocks(struct super_block *sb,
 				goto out;
 		}
 
+handle_itb:
 		/* Initialize group tables of the grop @group */
 		if (!(bg_flags[i] & EXT4_BG_INODE_ZEROED))
 			goto handle_bb;