On 1/15/20 7:37 PM, Bijan Mottahedeh wrote: > 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(). Looks good, thanks. -- Jens Axboe