mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 23:51:39 +00:00
a09decff5c
If the journal is dirty when the filesystem is mounted, jbd2 will replay
the journal but the journal superblock will not be updated by
journal_reset() because JBD2_ABORT flag is still set (it was set in
journal_init_common()). This is problematic because when a new transaction
is then committed, it will be recorded in block 1 (journal->j_tail was set
to 1 in journal_reset()). If unclean shutdown happens again before the
journal superblock is updated, the new recorded transaction will not be
replayed during the next mount (because of stale sb->s_start and
sb->s_sequence values) which can lead to filesystem corruption.
Fixes:
|
||
---|---|---|
.. | ||
checkpoint.c | ||
commit.c | ||
journal.c | ||
Kconfig | ||
Makefile | ||
recovery.c | ||
revoke.c | ||
transaction.c |