ext4: don't BUG on inconsistent journal feature
authorJan Kara <jack@suse.cz>
Fri, 10 Jul 2020 14:07:59 +0000 (16:07 +0200)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 6 Aug 2020 05:10:41 +0000 (01:10 -0400)
commit11215630aada28307ba555a43138db6ac54fa825
tree1fcb067cb7a271c78871990f51be718becf9c9e6
parent0b3171b6d195637f84ddf8b59bae818ea20bc8ac
ext4: don't BUG on inconsistent journal feature

A customer has reported a BUG_ON in ext4_clear_journal_err() hitting
during an LTP testing. Either this has been caused by a test setup
issue where the filesystem was being overwritten while LTP was mounting
it or the journal replay has overwritten the superblock with invalid
data. In either case it is preferable we don't take the machine down
with a BUG_ON. So handle the situation of unexpectedly missing
has_journal feature more gracefully. We issue warning and fail the mount
in the cases where the race window is narrow and the failed check is
most likely a programming error. In cases where fs corruption is more
likely, we do full ext4_error() handling before failing mount / remount.

Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20200710140759.18031-1-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/super.c