Subject: Re: [PATCH block/for-3.3/core] block: an exiting task should be allowed to create io_context

From: Andrew Morton <[email-masked]>
Date: Tue, 27 Dec 2011 14:07:38 -0800

On Sun, 25 Dec 2011 14:29:34 +0100
Jens Axboe <[email-masked]> wrote:

> On 2011-12-25 02:02, Tejun Heo wrote:
> > While fixing io_context creation / task exit race condition,
> > 6e736be7f2 "block: make ioc get/put interface more conventional and
> > fix race on alloction" also prevented an exiting (%PF_EXITING) task
> > from creating its own io_context.  This is incorrect as exit path may
> > issue IOs, e.g. from exit_files(), and if those IOs are the first ones
> > issued by the task, io_context needs to be created to process the IOs.
> > 
> > Combined with the existing problem of io_context / io_cq creation
> > failure having the possibility of stalling IO, this problem results in
> > deterministic full IO lockup with certain workloads.
> > 
> > Fix it by allowing io_context creation regardless of %PF_EXITING for
> > %current.

The patch works for me.

> Thanks, applied.

So we get another great big bisection hole in mainline.  I feel
duty bound to rewhine about this :(