提交 fff7afd7 编写于 作者: T Thomas Gleixner 提交者: Thomas Gleixner

[JFFS2] Convert thread start semaphore to completion

Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 90e260c8
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* For licensing information, see the file 'LICENCE' in this directory. * For licensing information, see the file 'LICENCE' in this directory.
* *
* $Id: background.c,v 1.50 2004/11/16 20:36:10 dwmw2 Exp $ * $Id: background.c,v 1.52 2005/05/19 16:18:08 gleixner Exp $
* *
*/ */
...@@ -37,7 +37,7 @@ int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c) ...@@ -37,7 +37,7 @@ int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c)
if (c->gc_task) if (c->gc_task)
BUG(); BUG();
init_MUTEX_LOCKED(&c->gc_thread_start); init_completion(&c->gc_thread_start);
init_completion(&c->gc_thread_exit); init_completion(&c->gc_thread_exit);
pid = kernel_thread(jffs2_garbage_collect_thread, c, CLONE_FS|CLONE_FILES); pid = kernel_thread(jffs2_garbage_collect_thread, c, CLONE_FS|CLONE_FILES);
...@@ -48,7 +48,7 @@ int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c) ...@@ -48,7 +48,7 @@ int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c)
} else { } else {
/* Wait for it... */ /* Wait for it... */
D1(printk(KERN_DEBUG "JFFS2: Garbage collect thread is pid %d\n", pid)); D1(printk(KERN_DEBUG "JFFS2: Garbage collect thread is pid %d\n", pid));
down(&c->gc_thread_start); wait_for_completion(&c->gc_thread_start);
} }
return ret; return ret;
...@@ -75,7 +75,7 @@ static int jffs2_garbage_collect_thread(void *_c) ...@@ -75,7 +75,7 @@ static int jffs2_garbage_collect_thread(void *_c)
allow_signal(SIGCONT); allow_signal(SIGCONT);
c->gc_task = current; c->gc_task = current;
up(&c->gc_thread_start); complete(&c->gc_thread_start);
set_user_nice(current, 10); set_user_nice(current, 10);
......
/* $Id: jffs2_fs_sb.h,v 1.51 2005/02/28 08:21:06 dedekind Exp $ */ /* $Id: jffs2_fs_sb.h,v 1.52 2005/05/19 16:12:17 gleixner Exp $ */
#ifndef _JFFS2_FS_SB #ifndef _JFFS2_FS_SB
#define _JFFS2_FS_SB #define _JFFS2_FS_SB
...@@ -32,7 +32,7 @@ struct jffs2_sb_info { ...@@ -32,7 +32,7 @@ struct jffs2_sb_info {
unsigned int flags; unsigned int flags;
struct task_struct *gc_task; /* GC task struct */ struct task_struct *gc_task; /* GC task struct */
struct semaphore gc_thread_start; /* GC thread start mutex */ struct completion gc_thread_start; /* GC thread start completion */
struct completion gc_thread_exit; /* GC thread exit completion port */ struct completion gc_thread_exit; /* GC thread exit completion port */
struct semaphore alloc_sem; /* Used to protect all the following struct semaphore alloc_sem; /* Used to protect all the following
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册