io_uring: cleanup io_aux_cqe() API
authorJens Axboe <axboe@kernel.dk>
Wed, 7 Jun 2023 20:41:20 +0000 (14:41 -0600)
committerJens Axboe <axboe@kernel.dk>
Wed, 7 Jun 2023 20:59:22 +0000 (14:59 -0600)
Everybody is passing in the request, so get rid of the io_ring_ctx and
explicit user_data pass-in. Both the ctx and user_data can be deduced
from the request at hand.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c
io_uring/io_uring.h
io_uring/net.c
io_uring/poll.c
io_uring/timeout.c

index fc511cb..08574a8 100644 (file)
@@ -935,9 +935,11 @@ bool io_post_aux_cqe(struct io_ring_ctx *ctx, u64 user_data, s32 res, u32 cflags
        return __io_post_aux_cqe(ctx, user_data, res, cflags, true);
 }
 
-bool io_aux_cqe(struct io_ring_ctx *ctx, bool defer, u64 user_data, s32 res, u32 cflags,
+bool io_aux_cqe(const struct io_kiocb *req, bool defer, s32 res, u32 cflags,
                bool allow_overflow)
 {
+       struct io_ring_ctx *ctx = req->ctx;
+       u64 user_data = req->cqe.user_data;
        struct io_uring_cqe *cqe;
        unsigned int length;
 
index 9b8dfb3..a937b4b 100644 (file)
@@ -47,7 +47,7 @@ int io_run_task_work_sig(struct io_ring_ctx *ctx);
 void io_req_defer_failed(struct io_kiocb *req, s32 res);
 void io_req_complete_post(struct io_kiocb *req, unsigned issue_flags);
 bool io_post_aux_cqe(struct io_ring_ctx *ctx, u64 user_data, s32 res, u32 cflags);
-bool io_aux_cqe(struct io_ring_ctx *ctx, bool defer, u64 user_data, s32 res, u32 cflags,
+bool io_aux_cqe(const struct io_kiocb *req, bool defer, s32 res, u32 cflags,
                bool allow_overflow);
 void __io_commit_cqring_flush(struct io_ring_ctx *ctx);
 
index 0795f37..369167e 100644 (file)
@@ -632,8 +632,8 @@ static inline bool io_recv_finish(struct io_kiocb *req, int *ret,
        }
 
        if (!mshot_finished) {
-               if (io_aux_cqe(req->ctx, issue_flags & IO_URING_F_COMPLETE_DEFER,
-                              req->cqe.user_data, *ret, cflags | IORING_CQE_F_MORE, true)) {
+               if (io_aux_cqe(req, issue_flags & IO_URING_F_COMPLETE_DEFER,
+                              *ret, cflags | IORING_CQE_F_MORE, true)) {
                        io_recv_prep_retry(req);
                        /* Known not-empty or unknown state, retry */
                        if (cflags & IORING_CQE_F_SOCK_NONEMPTY ||
@@ -1304,7 +1304,6 @@ int io_accept_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
 
 int io_accept(struct io_kiocb *req, unsigned int issue_flags)
 {
-       struct io_ring_ctx *ctx = req->ctx;
        struct io_accept *accept = io_kiocb_to_cmd(req, struct io_accept);
        bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK;
        unsigned int file_flags = force_nonblock ? O_NONBLOCK : 0;
@@ -1354,8 +1353,8 @@ retry:
 
        if (ret < 0)
                return ret;
-       if (io_aux_cqe(ctx, issue_flags & IO_URING_F_COMPLETE_DEFER,
-                      req->cqe.user_data, ret, IORING_CQE_F_MORE, true))
+       if (io_aux_cqe(req, issue_flags & IO_URING_F_COMPLETE_DEFER, ret,
+                      IORING_CQE_F_MORE, true))
                goto retry;
 
        return -ECANCELED;
index 9689806..6b9179e 100644 (file)
@@ -300,8 +300,8 @@ static int io_poll_check_events(struct io_kiocb *req, struct io_tw_state *ts)
                        __poll_t mask = mangle_poll(req->cqe.res &
                                                    req->apoll_events);
 
-                       if (!io_aux_cqe(req->ctx, ts->locked, req->cqe.user_data,
-                                       mask, IORING_CQE_F_MORE, false)) {
+                       if (!io_aux_cqe(req, ts->locked, mask,
+                                       IORING_CQE_F_MORE, false)) {
                                io_req_set_res(req, mask, 0);
                                return IOU_POLL_REMOVE_POLL_USE_RES;
                        }
index 350eb83..fb0547b 100644 (file)
@@ -73,8 +73,8 @@ static void io_timeout_complete(struct io_kiocb *req, struct io_tw_state *ts)
 
        if (!io_timeout_finish(timeout, data)) {
                bool filled;
-               filled = io_aux_cqe(ctx, ts->locked, req->cqe.user_data, -ETIME,
-                                   IORING_CQE_F_MORE, false);
+               filled = io_aux_cqe(req, ts->locked, -ETIME, IORING_CQE_F_MORE,
+                                   false);
                if (filled) {
                        /* re-arm timer */
                        spin_lock_irq(&ctx->timeout_lock);