io_uring: fix submission-failure handling for uring-cmd
authorKanchan Joshi <joshi.k@samsung.com>
Tue, 23 Aug 2022 15:10:22 +0000 (20:40 +0530)
committerJens Axboe <axboe@kernel.dk>
Tue, 23 Aug 2022 15:46:17 +0000 (09:46 -0600)
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.

Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/uring_cmd.c

index 8e0cc2d..b9989ae 100644 (file)
@@ -112,7 +112,7 @@ int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags)
                if (ret < 0)
                        req_set_fail(req);
                io_req_set_res(req, ret, 0);
-               return IOU_OK;
+               return ret;
        }
 
        return IOU_ISSUE_SKIP_COMPLETE;