[JFFS2] Improve failure mode if inode checking leaves unchecked space.
Linux-MTD Mailing List
linux-mtd at lists.infradead.org
Tue Apr 24 22:59:01 EDT 2007
Gitweb: http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=44b998e1eb254edc87177819ee693690fac68b7f
Commit: 44b998e1eb254edc87177819ee693690fac68b7f
Parent: 566865a2a4791c9290155f651ee0c2c606db0b1d
Author: David Woodhouse <dwmw2 at infradead.org>
AuthorDate: Mon Apr 23 12:11:46 2007 +0100
Committer: David Woodhouse <dwmw2 at infradead.org>
CommitDate: Mon Apr 23 12:11:46 2007 +0100
[JFFS2] Improve failure mode if inode checking leaves unchecked space.
We should never find the unchecked size is non-zero after we've finished
checking all inodes. If it happens, used to BUG(), leaving the alloc_sem
held and deadlocking. Instead, just return -ENOSPC after complaining. The
GC thread will die, but read-only operation should be able to continue and
the file system should be unmountable.
Signed-off-by: David Woodhouse <dwmw2 at infradead.org>
---
fs/jffs2/gc.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/fs/jffs2/gc.c b/fs/jffs2/gc.c
index 3a3cf22..e92cf0f 100644
--- a/fs/jffs2/gc.c
+++ b/fs/jffs2/gc.c
@@ -144,7 +144,8 @@ int jffs2_garbage_collect_pass(struct jffs2_sb_info *c)
c->unchecked_size);
jffs2_dbg_dump_block_lists_nolock(c);
spin_unlock(&c->erase_completion_lock);
- BUG();
+ up(&c->alloc_sem);
+ return -ENOSPC;
}
spin_unlock(&c->erase_completion_lock);
More information about the linux-mtd-cvs
mailing list