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: 李通洲 <carter.li@eoitek.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
5683e5406e
commit
5e559561a8
|
@ -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,
|
static ssize_t io_import_iovec(struct io_ring_ctx *ctx, int rw,
|
||||||
|
|
Loading…
Reference in New Issue