summaryrefslogtreecommitdiffstats
path: root/fs/ubifs/gc.c
diff options
context:
space:
mode:
authorAdrian Hunter2009-01-29 11:59:33 +0100
committerArtem Bityutskiy2009-01-29 15:19:36 +0100
commitb466f17d780c5b72427f36aef22ecdec9f1d0689 (patch)
tree09346513db7a7563f9a79ec0e6ec56b8536fabe9 /fs/ubifs/gc.c
parentUBIFS: spelling fix 'date' -> 'data' (diff)
downloadkernel-qcow2-linux-b466f17d780c5b72427f36aef22ecdec9f1d0689.tar.gz
kernel-qcow2-linux-b466f17d780c5b72427f36aef22ecdec9f1d0689.tar.xz
kernel-qcow2-linux-b466f17d780c5b72427f36aef22ecdec9f1d0689.zip
UBIFS: remount ro fixes
- preserve the idx_gc list - it will be needed in the same state, should UBIFS be remounted rw again - prevent remounting ro if we have switched to read only mode (due to a fatal error) Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'fs/ubifs/gc.c')
-rw-r--r--fs/ubifs/gc.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c
index bad3339a800d..a711d33b3d3e 100644
--- a/fs/ubifs/gc.c
+++ b/fs/ubifs/gc.c
@@ -830,29 +830,21 @@ out:
* ubifs_destroy_idx_gc - destroy idx_gc list.
* @c: UBIFS file-system description object
*
- * This function destroys the @c->idx_gc list. It is called when unmounting or
- * remounting read-only so locks are not needed. Returns zero in case of
- * success and a negative error code in case of failure.
+ * This function destroys the @c->idx_gc list. It is called when unmounting
+ * so locks are not needed. Returns zero in case of success and a negative
+ * error code in case of failure.
*/
-int ubifs_destroy_idx_gc(struct ubifs_info *c)
+void ubifs_destroy_idx_gc(struct ubifs_info *c)
{
- int ret = 0;
-
while (!list_empty(&c->idx_gc)) {
- int err;
struct ubifs_gced_idx_leb *idx_gc;
idx_gc = list_entry(c->idx_gc.next, struct ubifs_gced_idx_leb,
list);
- err = ubifs_change_one_lp(c, idx_gc->lnum, LPROPS_NC,
- LPROPS_NC, 0, LPROPS_TAKEN, -1);
- if (err && !ret)
- ret = err;
+ c->idx_gc_cnt -= 1;
list_del(&idx_gc->list);
kfree(idx_gc);
}
-
- return ret;
}
/**