Oleg Nesterov
fc2e4d7041
reimplement flush_workqueue()
...
Remove ->remove_sequence, ->insert_sequence, and ->work_done from struct
cpu_workqueue_struct. To implement flush_workqueue() we can queue a
barrier work on each CPU and wait for its completition.
The barrier is queued under workqueue_mutex to ensure that per cpu
wq->cpu_wq is alive, we drop this mutex before going to sleep. If CPU goes
down while we are waiting for completition, take_over_work() will move the
barrier on another CPU, and the handler will wake up us eventually.
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>
2007-05-09 12:30:50 -07:00
..
2007-05-09 12:30:48 -07:00
2007-05-09 12:30:48 -07:00
2007-05-09 12:30:50 -07:00
2006-01-03 11:35:26 +01:00
2006-12-08 08:28:42 -08:00
2007-05-08 11:15:09 -07:00
2006-09-11 13:32:30 -04:00
2007-02-17 21:30:09 -05:00
2007-03-14 15:27:48 -07:00
2007-02-12 09:48:32 -08:00
2007-02-11 10:51:32 -08:00
2007-05-09 12:30:49 -07:00
2007-04-02 10:06:09 -07:00
2007-05-09 12:30:49 -07:00
2007-05-07 12:12:55 -07:00
2007-05-08 11:15:04 -07:00
2006-12-07 08:39:46 -08:00
2006-06-30 19:25:36 +02:00
2007-05-08 11:15:07 -07:00
2006-05-15 11:20:55 -07:00
2007-05-08 11:15:07 -07:00
2006-10-10 15:37:22 -07:00
2007-05-08 11:15:03 -07:00
2007-05-08 11:15:15 -07:00
2007-05-08 11:15:13 -07:00
2007-05-08 11:15:09 -07:00
2006-12-07 08:39:36 -08:00
2007-05-08 11:15:07 -07:00
2007-02-11 10:51:32 -08:00
2007-05-08 11:15:07 -07:00
2007-05-08 11:15:19 -07:00
2007-05-02 18:57:59 -07:00
2007-02-11 10:51:32 -08:00
2006-12-04 02:00:22 -05:00
2006-12-07 08:39:43 -08:00
2007-02-14 08:09:54 -08:00
2007-05-08 11:15:13 -07:00
2007-05-08 11:15:04 -07:00
2007-05-08 11:15:08 -07:00
2007-02-14 08:09:54 -08:00
2006-07-03 15:27:01 -07:00
2006-12-08 08:28:39 -08:00
2006-07-03 15:27:04 -07:00
2007-05-08 11:15:00 -07:00
2007-02-11 10:51:29 -08:00
2007-05-08 11:15:08 -07:00
2007-05-08 11:15:00 -07:00
2007-05-08 11:15:11 -07:00
2007-05-08 11:15:07 -07:00
2007-05-08 11:15:07 -07:00
2007-02-11 10:51:32 -08:00
2006-09-29 09:18:12 -07:00
2006-12-07 08:39:40 -08:00
2007-05-08 11:15:17 -07:00
2007-03-01 14:53:37 -08:00
2007-04-28 14:15:59 -04:00
2006-06-27 17:32:47 -07:00
2006-10-04 03:38:54 -04:00
2006-07-03 15:27:01 -07:00
2006-12-07 08:39:27 -08:00
2007-02-16 08:13:58 -08:00
2006-07-03 15:27:01 -07:00
2007-05-08 11:15:09 -07:00
2007-05-08 20:41:15 -07:00
2007-05-09 12:30:49 -07:00
2007-02-16 08:13:59 -08:00
2007-05-08 11:15:06 -07:00
2006-11-25 13:28:34 -08:00
2006-10-04 07:55:30 -07:00
2006-07-03 15:27:02 -07:00
2007-05-08 11:15:00 -07:00
2006-11-03 12:27:59 -08:00
2007-05-09 12:30:48 -07:00
2007-05-08 11:15:02 -07:00
2007-05-07 12:12:55 -07:00
2007-05-08 11:15:07 -07:00
2007-05-08 11:15:11 -07:00
2007-02-16 08:14:00 -08:00
2007-05-08 11:15:07 -07:00
2006-12-07 08:39:25 -08:00
2007-02-14 08:09:59 -08:00
2007-05-08 11:15:00 -07:00
2006-07-10 13:24:25 -07:00
2007-05-09 12:30:50 -07:00