From: Jens Axboe Date: Wed, 13 Nov 2019 23:12:46 +0000 (-0700) Subject: io_uring: ensure registered buffer import returns the IO length X-Git-Tag: v5.15~5137^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5e559561a8d7e6d4adfce6aa8fbf3daa3dec1577;p=platform%2Fkernel%2Flinux-starfive.git 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: 李通洲 Signed-off-by: Jens Axboe --- diff --git a/fs/io_uring.c b/fs/io_uring.c index 57ea54d..2c819c3 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -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,