io_uring: don't setup async context for read/write fixed
Jens Axboe
maintainerPATCH 1/1 io_uring: don't setup async context for read/write fixed
We don't need it, and if we have it, then the retry handler will attempt to copy the non-existent iovec with the inline iovec, with a segment count that doesn't make sense.
Fixes f67676d160c6 ("io_uring: ensure async punted read/write requests copy iovec")
Reported-by Jonathan Lemon <[email protected]>
Signed-off-by Jens Axboe <[email protected]>
---
fs/io_uring.c +3 -0
@@ -1786,6 +1786,9 @@ static int io_setup_async_rw(struct io_kiocb *req, ssize_t io_size, struct iovec *iovec, struct iovec *fast_iov, struct iov_iter *iter) { + if (req->opcode == IORING_OP_READ_FIXED || + req->opcode == IORING_OP_WRITE_FIXED) + return 0; if (!req->io && io_alloc_async_ctx(req)) return -ENOMEM;
Signature · 1 line
Jens Axboe