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); extern void init_workqueues(void); void cancel_rearming_delayed_work(struct work_struct *work); +void cancel_rearming_delayed_workqueue(struct workqueue_struct *, + struct work_struct *); /* * 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) * @wq: the controlling workqueue structure * @work: the delayed work struct */ -static void cancel_rearming_delayed_workqueue(struct workqueue_struct *wq, - struct work_struct *work) +void cancel_rearming_delayed_workqueue(struct workqueue_struct *wq, + struct work_struct *work) { while (!cancel_delayed_work(work)) flush_workqueue(wq); } +EXPORT_SYMBOL(cancel_rearming_delayed_workqueue); /** * cancel_rearming_delayed_work - reliably kill off a delayed keventd