summaryrefslogtreecommitdiff
path: root/fs/jffs2/erase.c
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2010-05-19 17:05:14 +0100
committerDavid Woodhouse <David.Woodhouse@intel.com>2010-05-19 17:10:44 +0100
commitae3b6ba06c8ed399ef920724ee8136e540878294 (patch)
tree427f89ac31defa7b3114c50ab706c0f6df539136 /fs/jffs2/erase.c
parentacb64a43e4503fbea9faf123f2403da7af8831eb (diff)
downloadlinux-3.10-ae3b6ba06c8ed399ef920724ee8136e540878294.tar.gz
linux-3.10-ae3b6ba06c8ed399ef920724ee8136e540878294.tar.bz2
linux-3.10-ae3b6ba06c8ed399ef920724ee8136e540878294.zip
jffs2: Use jffs2_garbage_collect_trigger() to trigger pending erases
This is now done in a GC pass; we don't need to trigger kupdated to do it. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'fs/jffs2/erase.c')
-rw-r--r--fs/jffs2/erase.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
index 563c857ca54..6286ad9b00f 100644
--- a/fs/jffs2/erase.c
+++ b/fs/jffs2/erase.c
@@ -168,10 +168,10 @@ static void jffs2_erase_succeeded(struct jffs2_sb_info *c, struct jffs2_eraseblo
mutex_lock(&c->erase_free_sem);
spin_lock(&c->erase_completion_lock);
list_move_tail(&jeb->list, &c->erase_complete_list);
+ /* Wake the GC thread to mark them clean */
+ jffs2_garbage_collect_trigger(c);
spin_unlock(&c->erase_completion_lock);
mutex_unlock(&c->erase_free_sem);
- /* Ensure that kupdated calls us again to mark them clean */
- jffs2_erase_pending_trigger(c);
wake_up(&c->erase_wait);
}
@@ -491,9 +491,9 @@ filebad:
refile:
/* Stick it back on the list from whence it came and come back later */
- jffs2_erase_pending_trigger(c);
mutex_lock(&c->erase_free_sem);
spin_lock(&c->erase_completion_lock);
+ jffs2_garbage_collect_trigger(c);
list_move(&jeb->list, &c->erase_complete_list);
spin_unlock(&c->erase_completion_lock);
mutex_unlock(&c->erase_free_sem);