aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@tv-sign.ru>2007-05-09 05:34:19 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-09 15:30:52 -0400
commit23b2e5991afde5af91a1a661d7f47ee56120759e (patch)
treed4b8e5bc1a311abd6b6de469f862a8b53c5f9f36 /kernel
parentc214b2cc5f9be7c236f9b91acf524688ff0e3e72 (diff)
workqueue: kill NOAUTOREL works
We don't have any users, and it is not so trivial to use NOAUTOREL works correctly. It is better to simplify API. Delete NOAUTOREL support and rename work_release to work_clear_pending to avoid a confusion. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/workqueue.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 41eaffd125ca..0611de815a8f 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -246,8 +246,7 @@ static void run_workqueue(struct cpu_workqueue_struct *cwq)
246 spin_unlock_irq(&cwq->lock); 246 spin_unlock_irq(&cwq->lock);
247 247
248 BUG_ON(get_wq_data(work) != cwq); 248 BUG_ON(get_wq_data(work) != cwq);
249 if (!test_bit(WORK_STRUCT_NOAUTOREL, work_data_bits(work))) 249 work_clear_pending(work);
250 work_release(work);
251 f(work); 250 f(work);
252 251
253 if (unlikely(in_atomic() || lockdep_depth(current) > 0)) { 252 if (unlikely(in_atomic() || lockdep_depth(current) > 0)) {
@@ -453,7 +452,7 @@ void flush_work(struct workqueue_struct *wq, struct work_struct *work)
453 */ 452 */
454 spin_lock_irq(&cwq->lock); 453 spin_lock_irq(&cwq->lock);
455 list_del_init(&work->entry); 454 list_del_init(&work->entry);
456 work_release(work); 455 work_clear_pending(work);
457 spin_unlock_irq(&cwq->lock); 456 spin_unlock_irq(&cwq->lock);
458 457
459 for_each_cpu_mask(cpu, *cpu_map) 458 for_each_cpu_mask(cpu, *cpu_map)