mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-21 03:41:04 +07:00
io_uring: clear req->result on IOPOLL re-issue
Make sure we clear req->result, which was set to -EAGAIN for retry purposes, when moving it to the reissue list. Otherwise we can end up retrying a request more than once, which leads to weird results in the io-wq handling (and other spots). Cc: stable@vger.kernel.org Reported-by: Andres Freund <andres@anarazel.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
0fef948363
commit
56450c20fe
@ -2049,6 +2049,7 @@ static void io_iopoll_complete(struct io_ring_ctx *ctx, unsigned int *nr_events,
|
||||
|
||||
req = list_first_entry(done, struct io_kiocb, inflight_entry);
|
||||
if (READ_ONCE(req->result) == -EAGAIN) {
|
||||
req->result = 0;
|
||||
req->iopoll_completed = 0;
|
||||
list_move_tail(&req->inflight_entry, &again);
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user