]> www.infradead.org Git - users/hch/misc.git/commit
io_uring/rw: ensure reissue path is correctly handled for IOPOLL
authorJens Axboe <axboe@kernel.dk>
Wed, 5 Mar 2025 21:03:34 +0000 (14:03 -0700)
committerJens Axboe <axboe@kernel.dk>
Wed, 5 Mar 2025 21:03:34 +0000 (14:03 -0700)
commitbcb0fda3c2da9fe4721d3e73d80e778c038e7d27
tree5e8d9683fb7d5c14897be3869c120a1138377abd
parent6ebf05189dfc6d0d597c99a6448a4d1064439a18
io_uring/rw: ensure reissue path is correctly handled for IOPOLL

The IOPOLL path posts CQEs when the io_kiocb is marked as completed,
so it cannot rely on the usual retry that non-IOPOLL requests do for
read/write requests.

If -EAGAIN is received and the request should be retried, go through
the normal completion path and let the normal flush logic catch it and
reissue it, like what is done for !IOPOLL reads or writes.

Fixes: d803d123948f ("io_uring/rw: handle -EAGAIN retry at IO completion time")
Reported-by: John Garry <john.g.garry@oracle.com>
Link: https://lore.kernel.org/io-uring/2b43ccfa-644d-4a09-8f8f-39ad71810f41@oracle.com/
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/rw.c