|
@@ -1388,7 +1388,10 @@ int ext4_init_inode_table(struct super_block *sb, ext4_group_t group,
|
|
|
ext4_itable_unused_count(sb, gdp)),
|
|
|
sbi->s_inodes_per_block);
|
|
|
|
|
|
- if ((used_blks < 0) || (used_blks > sbi->s_itb_per_group)) {
|
|
|
+ if ((used_blks < 0) || (used_blks > sbi->s_itb_per_group) ||
|
|
|
+ ((group == 0) && ((EXT4_INODES_PER_GROUP(sb) -
|
|
|
+ ext4_itable_unused_count(sb, gdp)) <
|
|
|
+ EXT4_FIRST_INO(sb)))) {
|
|
|
ext4_error(sb, "Something is wrong with group %u: "
|
|
|
"used itable blocks: %d; "
|
|
|
"itable unused count: %u",
|