UBIFS: fix replay regression

Commit "d51f17e UBIFS: simplify reply code a bit" introduces a bug with the
following symptoms:

UBIFS error (pid 1): replay_log_leb: first CS node at LEB 3:0 has wrong commit number 0 expected 1

The issue is that we start replaying the log from UBIFS_LOG_LNUM instead
of c->lhead_lnum. This patch fixes that.

Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
This commit is contained in:
Artem Bityutskiy 2012-08-21 13:45:35 +03:00
parent 11e3be0be2
commit c212f4020d
1 changed files with 1 additions and 2 deletions

View File

@ -1026,7 +1026,6 @@ int ubifs_replay_journal(struct ubifs_info *c)
c->replaying = 1; c->replaying = 1;
lnum = c->ltail_lnum = c->lhead_lnum; lnum = c->ltail_lnum = c->lhead_lnum;
lnum = UBIFS_LOG_LNUM;
do { do {
err = replay_log_leb(c, lnum, 0, c->sbuf); err = replay_log_leb(c, lnum, 0, c->sbuf);
if (err == 1) if (err == 1)
@ -1035,7 +1034,7 @@ int ubifs_replay_journal(struct ubifs_info *c)
if (err) if (err)
goto out; goto out;
lnum = ubifs_next_log_lnum(c, lnum); lnum = ubifs_next_log_lnum(c, lnum);
} while (lnum != UBIFS_LOG_LNUM); } while (lnum != c->ltail_lnum);
err = replay_buds(c); err = replay_buds(c);
if (err) if (err)