io_uring: simplify __io_uring_add_tctx_node
authorDylan Yudaken <dylany@fb.com>
Mon, 26 Sep 2022 17:09:26 +0000 (10:09 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 7 Oct 2022 18:25:30 +0000 (12:25 -0600)
Remove submitter parameter from __io_uring_add_tctx_node.

It was only called from one place, and we can do that logic in that one
place.

Signed-off-by: Dylan Yudaken <dylany@fb.com>
Fixes: 97bbdc06a444 ("io_uring: add IORING_SETUP_SINGLE_ISSUER")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c
io_uring/tctx.c
io_uring/tctx.h

index 99a52f3..fe6ef64 100644 (file)
@@ -3355,7 +3355,7 @@ static int io_uring_install_fd(struct io_ring_ctx *ctx, struct file *file)
        if (fd < 0)
                return fd;
 
-       ret = __io_uring_add_tctx_node(ctx, false);
+       ret = __io_uring_add_tctx_node(ctx);
        if (ret) {
                put_unused_fd(fd);
                return ret;
index 7f97d97..dd0205f 100644 (file)
@@ -105,18 +105,12 @@ static int io_register_submitter(struct io_ring_ctx *ctx)
        return ret;
 }
 
-int __io_uring_add_tctx_node(struct io_ring_ctx *ctx, bool submitter)
+int __io_uring_add_tctx_node(struct io_ring_ctx *ctx)
 {
        struct io_uring_task *tctx = current->io_uring;
        struct io_tctx_node *node;
        int ret;
 
-       if ((ctx->flags & IORING_SETUP_SINGLE_ISSUER) && submitter) {
-               ret = io_register_submitter(ctx);
-               if (ret)
-                       return ret;
-       }
-
        if (unlikely(!tctx)) {
                ret = io_uring_alloc_task_context(current, ctx);
                if (unlikely(ret))
@@ -150,8 +144,24 @@ int __io_uring_add_tctx_node(struct io_ring_ctx *ctx, bool submitter)
                list_add(&node->ctx_node, &ctx->tctx_list);
                mutex_unlock(&ctx->uring_lock);
        }
-       if (submitter)
-               tctx->last = ctx;
+       return 0;
+}
+
+int __io_uring_add_tctx_node_from_submit(struct io_ring_ctx *ctx)
+{
+       int ret;
+
+       if (ctx->flags & IORING_SETUP_SINGLE_ISSUER) {
+               ret = io_register_submitter(ctx);
+               if (ret)
+                       return ret;
+       }
+
+       ret = __io_uring_add_tctx_node(ctx);
+       if (ret)
+               return ret;
+
+       current->io_uring->last = ctx;
        return 0;
 }
 
@@ -259,7 +269,7 @@ int io_ringfd_register(struct io_ring_ctx *ctx, void __user *__arg,
                return -EINVAL;
 
        mutex_unlock(&ctx->uring_lock);
-       ret = __io_uring_add_tctx_node(ctx, false);
+       ret = __io_uring_add_tctx_node(ctx);
        mutex_lock(&ctx->uring_lock);
        if (ret)
                return ret;
index 25974be..608e96d 100644 (file)
@@ -9,7 +9,8 @@ struct io_tctx_node {
 int io_uring_alloc_task_context(struct task_struct *task,
                                struct io_ring_ctx *ctx);
 void io_uring_del_tctx_node(unsigned long index);
-int __io_uring_add_tctx_node(struct io_ring_ctx *ctx, bool submitter);
+int __io_uring_add_tctx_node(struct io_ring_ctx *ctx);
+int __io_uring_add_tctx_node_from_submit(struct io_ring_ctx *ctx);
 void io_uring_clean_tctx(struct io_uring_task *tctx);
 
 void io_uring_unreg_ringfd(void);
@@ -27,5 +28,6 @@ static inline int io_uring_add_tctx_node(struct io_ring_ctx *ctx)
 
        if (likely(tctx && tctx->last == ctx))
                return 0;
-       return __io_uring_add_tctx_node(ctx, true);
+
+       return __io_uring_add_tctx_node_from_submit(ctx);
 }