io_uring: pass in 'sqe' to the prep handlers
authorJens Axboe <axboe@kernel.dk>
Fri, 20 Dec 2019 01:24:38 +0000 (18:24 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 20 Dec 2019 17:04:50 +0000 (10:04 -0700)
commit3529d8c2b353e6e446277ae96a36e7471cb070fc
tree726c1290dfdb8a7ad9d8efc682f6ecf803f7a275
parent06b76d44ba25e52711dc7cc4fc75b50907bc6b8e
io_uring: pass in 'sqe' to the prep handlers

This moves the prep handlers outside of the opcode handlers, and allows
us to pass in the sqe directly. If the sqe is non-NULL, it means that
the request should be prepared for the first time.

With the opcode handlers not having access to the sqe at all, we are
guaranteed that the prep handler has setup the request fully by the
time we get there. As before, for opcodes that need to copy in more
data then the io_kiocb allows for, the io_async_ctx holds that info. If
a prep handler is invoked with req->io set, it must use that to retain
information for later.

Finally, we can remove io_kiocb->sqe as well.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c