Re: [PATCH 02/13] workqueue: fix work_busy()

Tejun Heo
2013-02-05T18:53:55Z

Hello,

On Tue, Feb 05, 2013 at 08:06:54PM +0800, Lai Jiangshan wrote:
> >>@@ -3453,15 +3451,13 @@ unsigned int work_busy(struct work_struct *work)
> >> {
> >> struct worker_pool *pool = get_work_pool(work);
> >> unsigned long flags;
> >>- unsigned int ret = 0;
> >>+ unsigned int ret = work_pending(work) ? WORK_BUSY_PENDING : 0;
> >
> >I'd prefer this as a if() statement.
> >
> >> if (!pool)
> >>- return 0;
> >>+ return ret;
> >
> >I'm a bit confused. When can we be pending w/o pool?
> >
>
> grab the pending bits <==time==> really queued
> ^
> this patch considers the work is busy in this time

Given the advisory nature of the function, why do we care? Is it
needed for later patches?

Thanks.

--
tejun