The journal superblock's s_sequence field seems to track the tid of the tail (oldest) transaction in the log. Therefore, when we release the journal, set the s_sequence to the tail_sequence, because setting it to the transaction_sequence means that we're setting the tid to that of the head of the log. Granted, for replay these two are usually the same (and s_start == 0 anyway) so thus far we've gotten lucky and nobody noticed. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- e2fsck/journal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2fsck/journal.c b/e2fsck/journal.c index d12e317..6119cda 100644 --- a/e2fsck/journal.c +++ b/e2fsck/journal.c @@ -769,7 +769,7 @@ static void e2fsck_journal_release(e2fsck_t ctx, journal_t *journal, mark_buffer_clean(journal->j_sb_buffer); else if (!(ctx->options & E2F_OPT_READONLY)) { jsb = journal->j_superblock; - jsb->s_sequence = htonl(journal->j_transaction_sequence); + jsb->s_sequence = htonl(journal->j_tail_sequence); if (reset) jsb->s_start = 0; /* this marks the journal as empty */ e2fsck_journal_sb_csum_set(journal, jsb); -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html