diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 7cf82474b4de890d473a0275f280e6a567c7a53c..1abd2a61a8221b04b0803f235a2f18b58181b712 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -3911,9 +3911,11 @@ static int count_overhead(struct super_block *sb, ext4_group_t grp, ext4_fsblk_t first_block, last_block, b; ext4_group_t i, ngroups = ext4_get_groups_count(sb); int s, j, count = 0; + int has_super = ext4_bg_has_super(sb, grp); if (!ext4_has_feature_bigalloc(sb)) - return (ext4_bg_has_super(sb, grp) + ext4_bg_num_gdb(sb, grp) + + return (has_super + ext4_bg_num_gdb(sb, grp) + + (has_super ? le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks) : 0) + sbi->s_itb_per_group + 2); first_block = le32_to_cpu(sbi->s_es->s_first_data_block) +