From: Darrick J. Wong Date: Mon, 8 Sep 2014 23:12:48 +0000 (-0700) Subject: e2fsck: fix minor errors in journal handling X-Git-Tag: v1.43-WIP-2015-05-18~198 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dad8fc5fff9d6740488b0f06c0fe0e1adfb19b08;p=thirdparty%2Fe2fsprogs.git e2fsck: fix minor errors in journal handling 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 Signed-off-by: Theodore Ts'o --- diff --git a/e2fsck/journal.c b/e2fsck/journal.c index d12e3176b..6119cda6c 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);