summaryrefslogtreecommitdiffstats
path: root/fs/ext4
diff options
context:
space:
mode:
authorchangfengnan <fengnanchang@foxmail.com>2020-10-12 18:49:00 +0200
committerTheodore Ts'o <tytso@mit.edu>2020-10-18 10:37:26 -0400
commitfc750a3b44bdccb9fb96d6abbc48a9b8e480ce7b (patch)
treece371bef7eb030cd6d334c7fdaf2737a574374fa /fs/ext4
parentd3e7d20befd9d07db2955015a3f294c0a0a771d3 (diff)
downloadlinux-fc750a3b44bdccb9fb96d6abbc48a9b8e480ce7b.tar.gz
linux-fc750a3b44bdccb9fb96d6abbc48a9b8e480ce7b.tar.bz2
linux-fc750a3b44bdccb9fb96d6abbc48a9b8e480ce7b.zip
jbd2: avoid transaction reuse after reformatting
When ext4 is formatted with lazy_journal_init=1 and transactions from the previous filesystem are still on disk, it is possible that they are considered during a recovery after a crash. Because the checksum seed has changed, the CRC check will fail, and the journal recovery fails with checksum error although the journal is otherwise perfectly valid. Fix the problem by checking commit block time stamps to determine whether the data in the journal block is just stale or whether it is indeed corrupt. Reported-by: kernel test robot <lkp@intel.com> Reviewed-by: Andreas Dilger <adilger@dilger.ca> Signed-off-by: Fengnan Chang <changfengnan@hikvision.com> Signed-off-by: Jan Kara <jack@suse.cz> Link: https://lore.kernel.org/r/20201012164900.20197-1-jack@suse.cz Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
0 files changed, 0 insertions, 0 deletions