On Tue, Aug 23, 2022 at 09:47:39AM -0600, Jens Axboe wrote: >On 8/23/22 9:10 AM, Kanchan Joshi wrote: >> If ->uring_cmd returned an error value different from -EAGAIN or >> -EIOCBQUEUED, it gets overridden with IOU_OK. This invites trouble >> as caller (io_uring core code) handles IOU_OK differently than other >> error codes. >> Fix this by returning the actual error code. > >Not sure if this is strictly needed, as the cqe error is set just >fine. But I guess some places also check return value of the issue >path. So I was testing iopoll support and ran into this issue - submission failed (expected one), control came back to this point, error code got converted to IOU_OK, and it started polling endlessly for a command that never got submitted. io_issue_sqe continued to invoke io_iopoll_req_issued() rather than bailing out.