Re: [PATCH 2.5.71-mm1] aio process hang on EINVAL

Suparna Bhattacharya
2003-06-17T03:06:16Z

On Mon, Jun 16, 2003 at 06:33:13PM -0700, John Myers wrote:
>
> Daniel McNeil wrote:
>
> >Are there other error return values where it should jump to the
> >aio_put_req()? Should the check be:
> >
> >
> The situation is much worse. The io_submit_one() code in 2.5.71
> distinguishes between conditions where io_submit should fail (which goto
> out_put_req) and conditions where the queued operation completes
> immediately (which result in a call to aio_complete()). The patch in
> 2.5.71-mm1 which separates out aio_setup_iocb() loses track of this
> distinction, mishandling any case where the queued operation completes
> immediately. Aio poll, for instance, depends on being able to indicate
> immediate completion.

The code for aio_read/write does distinguish between these cases.
- if you spot a case where it doesn't do let me know.
aio_setup_iocb() just sets up the method after performing the
specified checks. Its aio_run_iocb() which actually executes it.

>
> So the part of aio-01-retry.patch that splits out aio_setup_iocb() is
> completely broken.
>

Actually, looking closer, I think its just aio poll that's
incorrectly merged here. The right way to implement aio poll in
the new model would have been to setup a retry method for it
in aio_setup_iocb(), not run generic_aio_poll() directly there.

Regards
Suparna

--
Suparna Bhattacharya (suparna@in.ibm.com)
Linux Technology Center
IBM Software Labs, India