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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Aug 2018 10:17:59 +0000 (12:17 +0200)
commit9bf8d5bf50510a6898943dbb397b7cb529301614
treeeadd96a52abb459d67c3f43b7d2b9ac6f7a1cceb
parentc68c772262d9b460ddd1b1d68e06ebe3254d0ead
ext4: fix false negatives *and* false positives in ext4_check_descriptors()

commit 44de022c4382541cebdd6de4465d1f4f465ff1dd upstream.

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
Signed-off-by: Benjamin Gilbert <bgilbert@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/super.c