Oleg Nesterov ed7c0feede make queue_delayed_work() friendly to flush_fork()
Currently typeof(delayed_work->work.data) is

	"struct workqueue_struct" when the timer is pending

	"struct cpu_workqueue_struct" whe the work is queued

This makes impossible to use flush_fork(delayed_work->work) in addition
to cancel_delayed_work/cancel_rearming_delayed_work, not good.

Change queue_delayed_work/delayed_work_timer_fn to use cwq, not wq. This
complicates (and uglifies) these functions a little bit, but alows us to
use flush_fork(dwork) and imho makes the whole code more consistent.

Also, document the fact that cancel_rearming_delayed_work() doesn't garantee
the completion of work->func() upon return.

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:52 -07:00
..
2007-05-09 12:30:48 -07:00
2006-09-11 13:32:30 -04:00
2007-02-11 10:51:32 -08:00
2007-05-08 11:15:03 -07:00
2007-05-08 11:15:15 -07:00
2006-12-07 08:39:36 -08:00
2007-05-08 11:15:07 -07:00
2006-12-04 02:00:22 -05:00
2006-09-29 09:18:12 -07:00
2005-04-16 15:20:36 -07:00
2007-05-08 11:15:02 -07:00
2006-12-07 08:39:25 -08:00
2006-07-10 13:24:25 -07:00