Hello, On Wed, May 24, 2017 at 01:34:53AM +0200, Alex Naidis wrote: > This implements a variant of work_busy() for > delayed work. > > CC: linux-kernel@vger.kernel.org > Signed-off-by: Alex Naidis <alex.nai...@linux.com> > --- > include/linux/workqueue.h | 1 + > kernel/workqueue.c | 9 +++++++++ > 2 files changed, 10 insertions(+) > > diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h > index c102ef6..32ab046 100644 > --- a/include/linux/workqueue.h > +++ b/include/linux/workqueue.h > @@ -467,6 +467,7 @@ extern void workqueue_set_max_active(struct > workqueue_struct *wq, > extern bool current_is_workqueue_rescuer(void); > extern bool workqueue_congested(int cpu, struct workqueue_struct *wq); > extern unsigned int work_busy(struct work_struct *work); > +extern unsigned int delayed_work_busy(struct delayed_work *dwork); > extern __printf(1, 2) void set_worker_desc(const char *fmt, ...); > extern void print_worker_info(const char *log_lvl, struct task_struct *task); > extern void show_workqueue_state(void); > diff --git a/kernel/workqueue.c b/kernel/workqueue.c > index c74bf39..658cc2e 100644 > --- a/kernel/workqueue.c > +++ b/kernel/workqueue.c > @@ -4224,6 +4224,15 @@ unsigned int work_busy(struct work_struct *work) > } > EXPORT_SYMBOL_GPL(work_busy); > > +/* > + * See work_busy() > + */ > +unsigned int delayed_work_busy(struct delayed_work *dwork) > +{ > + return work_busy(&dwork->work); > +} > +EXPORT_SYMBOL_GPL(delayed_work_busy);
What's the use case? Some of existing work_busy() seem wrong already. Also, if we need this, let's make it an inline function. Thanks. -- tejun