Commit 5e559561 authored by Jens Axboe's avatar Jens Axboe
Browse files

io_uring: ensure registered buffer import returns the IO length



A test case was reported where two linked reads with registered buffers
failed the second link always. This is because we set the expected value
of a request in req->result, and if we don't get this result, then we
fail the dependent links. For some reason the registered buffer import
returned -ERROR/0, while the normal import returns -ERROR/length. This
broke linked commands with registered buffers.

Fix this by making io_import_fixed() correctly return the mapped length.

Cc: stable@vger.kernel.org # v5.3
Reported-by: default avatar李通洲 <carter.li@eoitek.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 5683e540
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1230,7 +1230,7 @@ static int io_import_fixed(struct io_ring_ctx *ctx, int rw,
		}
	}

	return 0;
	return len;
}

static ssize_t io_import_iovec(struct io_ring_ctx *ctx, int rw,