diff options
| author | Anton Altaparmakov <aia21@cantab.net> | 2005-10-31 10:06:46 +0000 |
|---|---|---|
| committer | Anton Altaparmakov <aia21@cantab.net> | 2005-10-31 10:06:46 +0000 |
| commit | 1f04c0a24b2f3cfe89c802a24396263623e3512d (patch) | |
| tree | d7e2216b6e65b833c0c2b79b478d13ce17dbf296 /kernel/kthread.c | |
| parent | 07b188ab773e183871e57b33ae37bf635c9f12ba (diff) | |
| parent | e2f2e58e7968f8446b1078a20a18bf8ea12b4fbc (diff) | |
Merge branch 'master' of /usr/src/ntfs-2.6/
Diffstat (limited to 'kernel/kthread.c')
| -rw-r--r-- | kernel/kthread.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/kernel/kthread.c b/kernel/kthread.c index f50f174e92da..e75950a1092c 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -165,6 +165,12 @@ EXPORT_SYMBOL(kthread_bind); int kthread_stop(struct task_struct *k) { + return kthread_stop_sem(k, NULL); +} +EXPORT_SYMBOL(kthread_stop); + +int kthread_stop_sem(struct task_struct *k, struct semaphore *s) +{ int ret; down(&kthread_stop_lock); @@ -178,7 +184,10 @@ int kthread_stop(struct task_struct *k) /* Now set kthread_should_stop() to true, and wake it up. */ kthread_stop_info.k = k; - wake_up_process(k); + if (s) + up(s); + else + wake_up_process(k); put_task_struct(k); /* Once it dies, reset stop ptr, gather result and we're done. */ @@ -189,7 +198,7 @@ int kthread_stop(struct task_struct *k) return ret; } -EXPORT_SYMBOL(kthread_stop); +EXPORT_SYMBOL(kthread_stop_sem); static __init int helper_init(void) { |
