summaryrefslogtreecommitdiffstats
path: root/fs/jffs2/nodemgmt.c
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2010-05-19 18:00:10 +0200
committerDavid Woodhouse <David.Woodhouse@intel.com>2010-05-19 18:10:22 +0200
commitacb64a43e4503fbea9faf123f2403da7af8831eb (patch)
tree862d5ad6530b7c8671bda96a1bd1d07179f0b7c9 /fs/jffs2/nodemgmt.c
parentjffs2: Wake GC thread when there are blocks to be erased (diff)
downloadlinux-acb64a43e4503fbea9faf123f2403da7af8831eb.tar.xz
linux-acb64a43e4503fbea9faf123f2403da7af8831eb.zip
jffs2: Require jffs2_garbage_collect_trigger() to be called with lock held
We're about to call this from a bunch of places which already hold c->erase_completion_lock, so add an assertion and change its existing callers to do the same. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'fs/jffs2/nodemgmt.c')
-rw-r--r--fs/jffs2/nodemgmt.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/jffs2/nodemgmt.c b/fs/jffs2/nodemgmt.c
index 5ab5c8521cdf..dd2d920d3325 100644
--- a/fs/jffs2/nodemgmt.c
+++ b/fs/jffs2/nodemgmt.c
@@ -481,7 +481,9 @@ struct jffs2_raw_node_ref *jffs2_add_physical_node_ref(struct jffs2_sb_info *c,
void jffs2_complete_reservation(struct jffs2_sb_info *c)
{
D1(printk(KERN_DEBUG "jffs2_complete_reservation()\n"));
+ spin_lock(&c->erase_completion_lock);
jffs2_garbage_collect_trigger(c);
+ spin_unlock(&c->erase_completion_lock);
mutex_unlock(&c->alloc_sem);
}