Re: [PATCH 26/32] aio: refactor read/write iocb setup

From: Jeff Moyer
Date: Wed Jan 10 2018 - 16:20:02 EST


Christoph Hellwig <hch@xxxxxx> writes:

> Don't reference the kiocb structure from the common aio code, and move
> any use of it into helper specific to the read/write path. This is in
> preparation for aio_poll support that wants to use the space for different
> fields.
>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>

I think this all looks okay (making sure everything was still cleaned up
in the error cases was a bit of a chore). One nit below.

> +static int aio_prep_rw(struct kiocb *req, struct iocb *iocb)
> +{
> + int ret;
> +
> + req->ki_filp = fget(iocb->aio_fildes);
> + if (unlikely(!req->ki_filp))
> + return -EBADF;
> + req->ki_complete = aio_complete_rw;
> + req->ki_flags = 0;

The above assignment seems superfluous...

> + req->ki_pos = iocb->aio_offset;
> + req->ki_flags = iocb_flags(req->ki_filp);

because of this.

Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx>