ext4: fix ext4_init_block_bitmap() for metablock block group
When meta_bg feature is enabled and s_first_meta_bg != 0, ext4_init_block_bitmap() miscalculates the number of block used by the group descriptor table (0 or 1 for metablock block group) This patch fixes this by using ext4_bg_num_gdb() Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Stephen Tweedie <sct@redhat.com> Signed-off-by: Mingming Cao <cmm@us.ibm.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Acked-by: Andreas Dilger <adilger@sun.com>
This commit is contained in:
parent
7477827f66
commit
6afd670713
@ -121,12 +121,7 @@ unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh,
|
|||||||
le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks);
|
le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks);
|
||||||
}
|
}
|
||||||
} else { /* For META_BG_BLOCK_GROUPS */
|
} else { /* For META_BG_BLOCK_GROUPS */
|
||||||
int group_rel = (block_group -
|
bit_max += ext4_bg_num_gdb(sb, block_group);
|
||||||
le32_to_cpu(sbi->s_es->s_first_meta_bg)) %
|
|
||||||
EXT4_DESC_PER_BLOCK(sb);
|
|
||||||
if (group_rel == 0 || group_rel == 1 ||
|
|
||||||
(group_rel == EXT4_DESC_PER_BLOCK(sb) - 1))
|
|
||||||
bit_max += 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (block_group == sbi->s_groups_count - 1) {
|
if (block_group == sbi->s_groups_count - 1) {
|
||||||
|
Loading…
Reference in New Issue
Block a user