io_uring: split io_req_complete_post() and add a helper
authorHao Xu <haoxu@linux.alibaba.com>
Tue, 7 Dec 2021 09:39:50 +0000 (17:39 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 7 Dec 2021 22:02:42 +0000 (15:02 -0700)
Split io_req_complete_post(), this is a prep for the next patch.

Signed-off-by: Hao Xu <haoxu@linux.alibaba.com>
Link: https://lore.kernel.org/r/20211207093951.247840-5-haoxu@linux.alibaba.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 85f9459..21738ed 100644 (file)
@@ -1891,12 +1891,11 @@ static noinline bool io_fill_cqe_aux(struct io_ring_ctx *ctx, u64 user_data,
        return __io_fill_cqe(ctx, user_data, res, cflags);
 }
 
-static void io_req_complete_post(struct io_kiocb *req, s32 res,
-                                u32 cflags)
+static void __io_req_complete_post(struct io_kiocb *req, s32 res,
+                                  u32 cflags)
 {
        struct io_ring_ctx *ctx = req->ctx;
 
-       spin_lock(&ctx->completion_lock);
        if (!(req->flags & REQ_F_CQE_SKIP))
                __io_fill_cqe(ctx, req->user_data, res, cflags);
        /*
@@ -1918,6 +1917,15 @@ static void io_req_complete_post(struct io_kiocb *req, s32 res,
                wq_list_add_head(&req->comp_list, &ctx->locked_free_list);
                ctx->locked_free_nr++;
        }
+}
+
+static void io_req_complete_post(struct io_kiocb *req, s32 res,
+                                u32 cflags)
+{
+       struct io_ring_ctx *ctx = req->ctx;
+
+       spin_lock(&ctx->completion_lock);
+       __io_req_complete_post(req, res, cflags);
        io_commit_cqring(ctx);
        spin_unlock(&ctx->completion_lock);
        io_cqring_ev_posted(ctx);