https://github.com/torvalds/linux
Revision 797f3f535d59f05ad12c629338beef6cb801d19e authored by Bijan Mottahedeh on 16 January 2020, 02:37:45 UTC, committed by Jens Axboe on 16 January 2020, 04:36:13 UTC
req->result is cleared when io_issue_sqe() calls io_read/write_pre() routines. Those routines however are not called when the sqe argument is NULL, which is the case when io_issue_sqe() is called from io_wq_submit_work(). io_issue_sqe() may then examine a stale result if a polled request had previously failed with -EAGAIN: if (ctx->flags & IORING_SETUP_IOPOLL) { if (req->result == -EAGAIN) return -EAGAIN; io_iopoll_req_issued(req); } and in turn cause a subsequently completed request to be re-issued in io_wq_submit_work(). Signed-off-by: Bijan Mottahedeh <bijan.mottahedeh@oracle.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 7891293
Tip revision: 797f3f535d59f05ad12c629338beef6cb801d19e authored by Bijan Mottahedeh on 16 January 2020, 02:37:45 UTC
io_uring: clear req->result always before issuing a read/write request
io_uring: clear req->result always before issuing a read/write request
Tip revision: 797f3f5
Computing file changes ...