]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
tune2fs: do not change j_tail_sequence in journal superblock
authorzhanchengbin <zhanchengbin1@huawei.com>
Thu, 4 Aug 2022 10:33:39 +0000 (18:33 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 11 Aug 2022 16:57:21 +0000 (12:57 -0400)
The function recover_ext3_journal() in debugfs/journal.c, if the log
replay is over, the j_tail_sequence in journal superblock is not
changed to the value of the last transaction sequence.  This will
cause subsequent log commitids to count from the commitid in last
time.  After tune2fs -e, the log commitid is counted from the commitid
in last time, if the log ID of the current operation overlaps with
that of the last operation, this will cause logs that were previously
replayed by tune2fs to be replayed here.

Signed-off-by: zhanchengbin <zhanchengbin1@huawei.com>
Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
Signed-off-by: liangyun <liangyun2@huawei.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
debugfs/journal.c

index 095fff008587b269465d7560cc07e902e666e358..5bac0d3b0f16901539be011718098dca885de3cd 100644 (file)
@@ -769,6 +769,8 @@ static errcode_t recover_ext3_journal(ext2_filsys fs)
                mark_buffer_dirty(journal->j_sb_buffer);
        }
 
+       journal->j_tail_sequence = journal->j_transaction_sequence;
+
 errout:
        jbd2_journal_destroy_revoke(journal);
        jbd2_journal_destroy_revoke_record_cache();