UBIFS: simplify reply code a bit
In the log reply code we assume that 'c->lhead_offs' is known and may be non-zero, which is not the case because we do not store it in the master node and have to find out by scanning on every mount. Knowing this fact allows us to simplify the log scanning loop a bit and remove a couple of unneeded local variables. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
This commit is contained in:
parent
06bef9451a
commit
d51f17ea0a
1 changed files with 6 additions and 14 deletions
|
@ -1007,7 +1007,7 @@ static int take_ihead(struct ubifs_info *c)
|
|||
*/
|
||||
int ubifs_replay_journal(struct ubifs_info *c)
|
||||
{
|
||||
int err, i, lnum, offs, free;
|
||||
int err, lnum, free;
|
||||
|
||||
BUILD_BUG_ON(UBIFS_TRUN_KEY > 5);
|
||||
|
||||
|
@ -1025,25 +1025,17 @@ int ubifs_replay_journal(struct ubifs_info *c)
|
|||
dbg_mnt("start replaying the journal");
|
||||
c->replaying = 1;
|
||||
lnum = c->ltail_lnum = c->lhead_lnum;
|
||||
offs = c->lhead_offs;
|
||||
|
||||
for (i = 0; i < c->log_lebs; i++, lnum++) {
|
||||
if (lnum >= UBIFS_LOG_LNUM + c->log_lebs) {
|
||||
/*
|
||||
* The log is logically circular, we reached the last
|
||||
* LEB, switch to the first one.
|
||||
*/
|
||||
lnum = UBIFS_LOG_LNUM;
|
||||
offs = 0;
|
||||
}
|
||||
err = replay_log_leb(c, lnum, offs, c->sbuf);
|
||||
lnum = UBIFS_LOG_LNUM;
|
||||
do {
|
||||
err = replay_log_leb(c, lnum, 0, c->sbuf);
|
||||
if (err == 1)
|
||||
/* We hit the end of the log */
|
||||
break;
|
||||
if (err)
|
||||
goto out;
|
||||
offs = 0;
|
||||
}
|
||||
lnum = ubifs_next_log_lnum(c, lnum);
|
||||
} while (lnum != UBIFS_LOG_LNUM);
|
||||
|
||||
err = replay_buds(c);
|
||||
if (err)
|
||||
|
|
Loading…
Reference in a new issue