diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index 5fffbb26ab6901080d274532d09f244917f4d87c..68365decd7ea443ae16e944a6419656ccf8524cb 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -1556,7 +1556,8 @@ static int ext4_flex_group_add(struct super_block *sb, int gdb_num = group / EXT4_DESC_PER_BLOCK(sb); int gdb_num_end = ((group + flex_gd->count - 1) / EXT4_DESC_PER_BLOCK(sb)); - int meta_bg = ext4_has_feature_meta_bg(sb); + int meta_bg = ext4_has_feature_meta_bg(sb) && + gdb_num >= le32_to_cpu(es->s_first_meta_bg); sector_t old_gdb = 0; update_backups(sb, sbi->s_sbh->b_blocknr, (char *)es,