History

[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.

James Bottomley committed 21 years ago

Commit 81ddef71 parent 9ffb7142 files · +5 −2Browse files

Unified · Split

2 files
  1. include/linux/workqueue.h +2 −0
  2. kernel/workqueue.c +3 −2
include/linux/workqueue.h+2−0
@@ -71,6 +71,8 @@ extern int keventd_up(void); · 70 unmodified lines
71 71
72extern void init_workqueues(void);72extern void init_workqueues(void);
73void cancel_rearming_delayed_work(struct work_struct *work);73void cancel_rearming_delayed_work(struct work_struct *work);
74void 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 callback78 * Kill off a pending schedule_delayed_work(). Note that the work callback
kernel/workqueue.c+3−2
@@ -429,12 +429,13 @@ void flush_scheduled_work(void) · 428 unmodified lines
429 * @wq: the controlling workqueue structure429 * @wq: the controlling workqueue structure
430 * @work: the delayed work struct430 * @work: the delayed work struct
431 */431 */
432static void cancel_rearming_delayed_workqueue(struct workqueue_struct *wq,432void 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}
438EXPORT_SYMBOL(cancel_rearming_delayed_workqueue);
438 439
439/**440/**
440 * cancel_rearming_delayed_work - reliably kill off a delayed keventd441 * cancel_rearming_delayed_work - reliably kill off a delayed keventd