Skip to content

Commit

Permalink
UBIFS: simplify reply code a bit
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Artem Bityutskiy committed Jul 20, 2012
1 parent 06bef94 commit d51f17e
Showing 1 changed file with 6 additions and 14 deletions.
20 changes: 6 additions & 14 deletions fs/ubifs/replay.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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)
Expand Down

0 comments on commit d51f17e

Please sign in to comment.