History

workqueue: flush_delayed_work: keep the original workqueue for re-queueing

flush_delayed_work() always uses keventd_wq for re-queueing, but it should use the workqueue this dwork was queued on.

Oleg Nesterov committed 16 years ago

Commit 47dd5be1 parent 66f41d41 file · +1 −1Browse files

Showing the changes to kernel/workqueue.c (1 of 1 file). Show all

Unified · Split

kernel/workqueue.c+1−1
@@ -774,7 +774,7 @@ void flush_delayed_work(struct delayed_work *dwork) · 773 unmodified lines
774{774{
775 if (del_timer_sync(&dwork->timer)) {775 if (del_timer_sync(&dwork->timer)) {
776 struct cpu_workqueue_struct *cwq;776 struct cpu_workqueue_struct *cwq;
777 cwq = wq_per_cpu(keventd_wq, get_cpu());777 cwq = wq_per_cpu(get_wq_data(&dwork->work)->wq, get_cpu());
778 __queue_work(cwq, &dwork->work);778 __queue_work(cwq, &dwork->work);
779 put_cpu();779 put_cpu();
780 }780 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t