aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ubifs
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@linux.intel.com>2012-07-14 13:52:58 -0400
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2012-07-20 03:27:25 -0400
commitd51f17ea0a3afe11fb4c4ad6635877e24df2758f (patch)
tree8d51473b4e2e842a5d90f762a14a3832f3a05b89 /fs/ubifs
parent06bef9451a4c5ad882cd15fd7a0df9890c0249f3 (diff)
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>
Diffstat (limited to 'fs/ubifs')
-rw-r--r--fs/ubifs/replay.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/fs/ubifs/replay.c b/fs/ubifs/replay.c
index 3a2da7e476e5..eba46d4a7619 100644
--- a/fs/ubifs/replay.c
+++ b/fs/ubifs/replay.c
@@ -1007,7 +1007,7 @@ out:
1007 */ 1007 */
1008int ubifs_replay_journal(struct ubifs_info *c) 1008int ubifs_replay_journal(struct ubifs_info *c)
1009{ 1009{
1010 int err, i, lnum, offs, free; 1010 int err, lnum, free;
1011 1011
1012 BUILD_BUG_ON(UBIFS_TRUN_KEY > 5); 1012 BUILD_BUG_ON(UBIFS_TRUN_KEY > 5);
1013 1013
@@ -1025,25 +1025,17 @@ int ubifs_replay_journal(struct ubifs_info *c)
1025 dbg_mnt("start replaying the journal"); 1025 dbg_mnt("start replaying the journal");
1026 c->replaying = 1; 1026 c->replaying = 1;
1027 lnum = c->ltail_lnum = c->lhead_lnum; 1027 lnum = c->ltail_lnum = c->lhead_lnum;
1028 offs = c->lhead_offs;
1029 1028
1030 for (i = 0; i < c->log_lebs; i++, lnum++) { 1029 lnum = UBIFS_LOG_LNUM;
1031 if (lnum >= UBIFS_LOG_LNUM + c->log_lebs) { 1030 do {
1032 /* 1031 err = replay_log_leb(c, lnum, 0, c->sbuf);
1033 * The log is logically circular, we reached the last
1034 * LEB, switch to the first one.
1035 */
1036 lnum = UBIFS_LOG_LNUM;
1037 offs = 0;
1038 }
1039 err = replay_log_leb(c, lnum, offs, c->sbuf);
1040 if (err == 1) 1032 if (err == 1)
1041 /* We hit the end of the log */ 1033 /* We hit the end of the log */
1042 break; 1034 break;
1043 if (err) 1035 if (err)
1044 goto out; 1036 goto out;
1045 offs = 0; 1037 lnum = ubifs_next_log_lnum(c, lnum);
1046 } 1038 } while (lnum != UBIFS_LOG_LNUM);
1047 1039
1048 err = replay_buds(c); 1040 err = replay_buds(c);
1049 if (err) 1041 if (err)