From: Jens Axboe Date: Tue, 14 Jan 2020 02:23:24 +0000 (-0700) Subject: io_uring: don't setup async context for read/write fixed X-Git-Tag: v5.5-rc7~21^2~5 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=74566df3a71c1b92da608868cca787557d8be7b2;p=users%2Fjedix%2Flinux-maple.git 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 Signed-off-by: Jens Axboe --- diff --git a/fs/io_uring.c b/fs/io_uring.c index 38b54051facd..8321c2f5589b 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -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;