ext4: fix false negatives *and* false positives in ext4_check_descriptors()
authorTheodore Ts'o <tytso@mit.edu>
Sun, 8 Jul 2018 23:35:02 +0000 (19:35 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 8 Jul 2018 23:35:02 +0000 (19:35 -0400)
commit44de022c4382541cebdd6de4465d1f4f465ff1dd
tree795cbea36f3360acaa617f2ae9f2af90442135fa
parent1e4b044d22517cae7047c99038abb444423243ca
ext4: fix false negatives *and* false positives in ext4_check_descriptors()

Ext4_check_descriptors() was getting called before s_gdb_count was
initialized.  So for file systems w/o the meta_bg feature, allocation
bitmaps could overlap the block group descriptors and ext4 wouldn't
notice.

For file systems with the meta_bg feature enabled, there was a
fencepost error which would cause the ext4_check_descriptors() to
incorrectly believe that the block allocation bitmap overlaps with the
block group descriptor blocks, and it would reject the mount.

Fix both of these problems.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@vger.kernel.org
fs/ext4/super.c