Re: [PATCH 1/1]: Thaws refrigerated bdi flusher threads before invoking kthread_stop on them

Jens Axboe
2009-11-11T19:37:20Z

On Wed, Nov 11 2009, Rafael J. Wysocki wrote:
> On Wednesday 11 November 2009, Pavel Machek wrote:
> > On Wed 2009-11-11 14:00:16, Romit Dasgupta wrote:
> > > Kicks out frozen bdi flusher task out of the refrigerator when the flusher task
> > > needs to exit.
> >
> >
> > > Signed-off-by: Romit Dasgupta <romit@ti.com>
> >
> > Ok, its slightly "interesting", but better than modifying common
> > code. Looks ok to me.
> >
> > ACK.
>
> Agreed.
>
> Jens, any objections?

Nope, looks fine to me. Though I'd probably prefer just doing an
unconditional PF_FROZEN clear.

/*
* Force unfreeze of the bdi threads before stopping it, since otherwise
* it would never exit if it is stuck in the refrigerator.
*/
list_for_each_entry(wb, &bdi->wb_list, list) {
wb->task->flags &= ~PF_FROZEN;
kthread_stop(wb->task);
}

And the comment too, it's not enough to stuff this into the commit.

--
Jens Axboe