diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-04-26 09:49:32 +0300 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-05-13 19:23:55 +0300 |
commit | 2405f5948119cdc1c28697fd3110124dad974898 (patch) | |
tree | 04bad5852693a5a18cb919c298e59dbf385c1d96 /fs/ubifs/recovery.c | |
parent | 2cd0a60cf49db4722445337b90fb06c9672f1128 (diff) | |
download | linux-2405f5948119cdc1c28697fd3110124dad974898.tar.gz linux-2405f5948119cdc1c28697fd3110124dad974898.tar.bz2 linux-2405f5948119cdc1c28697fd3110124dad974898.zip |
UBIFS: remove duplicated code
We have duplicated code in 'ubifs_garbage_collect()' and
'ubifs_rcvry_gc_commit()', which is about handling the special case of free
LEB. In both cases we just want to garbage-collect the LEB using
'ubifs_garbage_collect_leb()'.
This patch teaches 'ubifs_garbage_collect_leb()' to handle free LEB's so that
the caller does not have to do this and the duplicated code is removed.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'fs/ubifs/recovery.c')
-rw-r--r-- | fs/ubifs/recovery.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/fs/ubifs/recovery.c b/fs/ubifs/recovery.c index 3dbad6fbd1eb..1a72046efed5 100644 --- a/fs/ubifs/recovery.c +++ b/fs/ubifs/recovery.c @@ -1125,25 +1125,10 @@ int ubifs_rcvry_gc_commit(struct ubifs_info *c) } return err; } + ubifs_assert(!(lp.flags & LPROPS_INDEX)); lnum = lp.lnum; - if (lp.free + lp.dirty == c->leb_size) { - /* An empty LEB was returned */ - if (lp.free != c->leb_size) { - err = ubifs_change_one_lp(c, lnum, c->leb_size, - 0, 0, 0, 0); - if (err) - return err; - } - err = ubifs_leb_unmap(c, lnum); - if (err) - return err; - c->gc_lnum = lnum; - dbg_rcvry("allocated LEB %d for GC", lnum); - /* Run the commit */ - dbg_rcvry("committing"); - return ubifs_run_commit(c); - } + /* * There was no empty LEB so the used space in the dirtiest LEB must fit * in the GC head LEB. |