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

From: Lai Jiangshan
Date: Wed Feb 06 2013 - 06:42:30 EST


On Wed, Feb 6, 2013 at 2:53 AM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> 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?
>

Ah, yes.

Thanks,
Lai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/