diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index d901653fc86cca63adb25ccd2bcb79b62f9ff342..65ec76f4abdefd2ba0135cbe39c7f77568c165ce 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, ext4_group_first_block_no(sb, 0),