Skip to contentSkip to conversation

io_uring: don't setup async context for read/write fixed

PATCH New Jens Axboe 1 participant 1 message Jan 14, 2020

Subsystems (2)
lore
Share & tools
lore

Jens Axboe

author maintainer
#0 lore raw

PATCH 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")

---

fs/io_uring.c +3 -0
index 38b54051facd..8321c2f5589b 100644
@@ -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