diff options
author | James Bottomley <James.Bottomley@SteelEye.com> | 2005-04-16 18:23:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:23:59 -0400 |
commit | 81ddef77bb774e771db8588b937665cd38f40cee (patch) | |
tree | 5e89b0f6bb47a43b3b00d30a5e1e22db727b5047 | |
parent | 9ffb7146f0aa9c0070cda3d8701b0a89e34913d1 (diff) |
[PATCH] re-export cancel_rearming_delayed_workqueue
This was unexported by Arjan because we have no current users.
However, during a conversion from tasklets to workqueues of the parisc led
functions, we ran across a case where this was needed. In particular, the
open coded equivalent of cancel_rearming_delayed_workqueue was implemented
incorrectly, which is, I think, all the evidence necessary that this is a
useful API.
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | include/linux/workqueue.h | 2 | ||||
-rw-r--r-- | kernel/workqueue.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index ff46f537ba9b..ac39d04d027c 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h | |||
@@ -71,6 +71,8 @@ extern int keventd_up(void); | |||
71 | 71 | ||
72 | extern void init_workqueues(void); | 72 | extern void init_workqueues(void); |
73 | void cancel_rearming_delayed_work(struct work_struct *work); | 73 | void cancel_rearming_delayed_work(struct work_struct *work); |
74 | void cancel_rearming_delayed_workqueue(struct workqueue_struct *, | ||
75 | struct work_struct *); | ||
74 | 76 | ||
75 | /* | 77 | /* |
76 | * Kill off a pending schedule_delayed_work(). Note that the work callback | 78 | * Kill off a pending schedule_delayed_work(). Note that the work callback |
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 52ef419d2747..259cf55da3c9 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -429,12 +429,13 @@ void flush_scheduled_work(void) | |||
429 | * @wq: the controlling workqueue structure | 429 | * @wq: the controlling workqueue structure |
430 | * @work: the delayed work struct | 430 | * @work: the delayed work struct |
431 | */ | 431 | */ |
432 | static void cancel_rearming_delayed_workqueue(struct workqueue_struct *wq, | 432 | void cancel_rearming_delayed_workqueue(struct workqueue_struct *wq, |
433 | struct work_struct *work) | 433 | struct work_struct *work) |
434 | { | 434 | { |
435 | while (!cancel_delayed_work(work)) | 435 | while (!cancel_delayed_work(work)) |
436 | flush_workqueue(wq); | 436 | flush_workqueue(wq); |
437 | } | 437 | } |
438 | EXPORT_SYMBOL(cancel_rearming_delayed_workqueue); | ||
438 | 439 | ||
439 | /** | 440 | /** |
440 | * cancel_rearming_delayed_work - reliably kill off a delayed keventd | 441 | * cancel_rearming_delayed_work - reliably kill off a delayed keventd |