diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2008-07-25 10:47:53 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 19:53:40 +0200 |
commit | ef1ca236b8d645349ed6569598ae3f6c1b9511c0 (patch) | |
tree | a193741b4aca43c90fcf2bf8be0d999d27b99eba /kernel/workqueue.c | |
parent | workqueues: lockdep annotations for flush_work() (diff) | |
download | linux-ef1ca236b8d645349ed6569598ae3f6c1b9511c0.tar.xz linux-ef1ca236b8d645349ed6569598ae3f6c1b9511c0.zip |
workqueues: queue_work() can use queue_work_on()
queue_work() can use queue_work_on() to avoid the code duplication.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r-- | kernel/workqueue.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 4fcb75b98443..fe08a8512ddd 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -159,14 +159,11 @@ static void __queue_work(struct cpu_workqueue_struct *cwq, */ int queue_work(struct workqueue_struct *wq, struct work_struct *work) { - int ret = 0; + int ret; + + ret = queue_work_on(get_cpu(), wq, work); + put_cpu(); - if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work))) { - BUG_ON(!list_empty(&work->entry)); - __queue_work(wq_per_cpu(wq, get_cpu()), work); - put_cpu(); - ret = 1; - } return ret; } EXPORT_SYMBOL_GPL(queue_work); |