io_uring: refactor io_submit_flush_completions()
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 17 Jun 2021 17:14:00 +0000 (18:14 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 18 Jun 2021 15:22:02 +0000 (09:22 -0600)
struct io_comp_state is always contained in struct io_ring_ctx, don't
pass them into io_submit_flush_completions() separately, it makes the
interface cleaner and simplifies it for the compiler.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/44d6ca57003a82484338e95197024dbd65a1b376.1623949695.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 46a25a7..1e5ffc6 100644 (file)
@@ -1059,8 +1059,7 @@ static void __io_queue_sqe(struct io_kiocb *req);
 static void io_rsrc_put_work(struct work_struct *work);
 
 static void io_req_task_queue(struct io_kiocb *req);
-static void io_submit_flush_completions(struct io_comp_state *cs,
-                                       struct io_ring_ctx *ctx);
+static void io_submit_flush_completions(struct io_ring_ctx *ctx);
 static bool io_poll_remove_waitqs(struct io_kiocb *req);
 static int io_req_prep_async(struct io_kiocb *req);
 
@@ -1879,7 +1878,7 @@ static void ctx_flush_and_put(struct io_ring_ctx *ctx)
                return;
        if (ctx->submit_state.comp.nr) {
                mutex_lock(&ctx->uring_lock);
-               io_submit_flush_completions(&ctx->submit_state.comp, ctx);
+               io_submit_flush_completions(ctx);
                mutex_unlock(&ctx->uring_lock);
        }
        percpu_ref_put(&ctx->refs);
@@ -2127,9 +2126,9 @@ static void io_req_free_batch(struct req_batch *rb, struct io_kiocb *req,
                list_add(&req->compl.list, &state->comp.free_list);
 }
 
-static void io_submit_flush_completions(struct io_comp_state *cs,
-                                       struct io_ring_ctx *ctx)
+static void io_submit_flush_completions(struct io_ring_ctx *ctx)
 {
+       struct io_comp_state *cs = &ctx->submit_state.comp;
        int i, nr = cs->nr;
        struct io_kiocb *req;
        struct req_batch rb;
@@ -6451,7 +6450,7 @@ static void __io_queue_sqe(struct io_kiocb *req)
 
                        cs->reqs[cs->nr++] = req;
                        if (cs->nr == ARRAY_SIZE(cs->reqs))
-                               io_submit_flush_completions(cs, ctx);
+                               io_submit_flush_completions(ctx);
                } else {
                        io_put_req(req);
                }
@@ -6651,7 +6650,7 @@ static void io_submit_state_end(struct io_submit_state *state,
        if (state->link.head)
                io_queue_sqe(state->link.head);
        if (state->comp.nr)
-               io_submit_flush_completions(&state->comp, ctx);
+               io_submit_flush_completions(ctx);
        if (state->plug_started)
                blk_finish_plug(&state->plug);
        io_state_file_put(state);