io_uring: cleanup io_alloc_async_ctx()
authorXiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
Fri, 27 Mar 2020 07:36:52 +0000 (15:36 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 27 Mar 2020 14:54:06 +0000 (08:54 -0600)
Cleanup io_alloc_async_ctx() a bit, add a new __io_alloc_async_ctx(),
so io_setup_async_rw() won't need to check whether async_ctx is true
or false again.

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Xiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 487e2742a9e87e0afcdeba65ac33a00a3165af72..b12d33b12bc7c86aec4e1ae675272c1d5e449714 100644 (file)
@@ -2469,12 +2469,18 @@ static void io_req_map_rw(struct io_kiocb *req, ssize_t io_size,
        }
 }
 
+static inline int __io_alloc_async_ctx(struct io_kiocb *req)
+{
+       req->io = kmalloc(sizeof(*req->io), GFP_KERNEL);
+       return req->io == NULL;
+}
+
 static int io_alloc_async_ctx(struct io_kiocb *req)
 {
        if (!io_op_defs[req->opcode].async_ctx)
                return 0;
-       req->io = kmalloc(sizeof(*req->io), GFP_KERNEL);
-       return req->io == NULL;
+
+       return  __io_alloc_async_ctx(req);
 }
 
 static int io_setup_async_rw(struct io_kiocb *req, ssize_t io_size,
@@ -2484,7 +2490,7 @@ static int io_setup_async_rw(struct io_kiocb *req, ssize_t io_size,
        if (!io_op_defs[req->opcode].async_ctx)
                return 0;
        if (!req->io) {
-               if (io_alloc_async_ctx(req))
+               if (__io_alloc_async_ctx(req))
                        return -ENOMEM;
 
                io_req_map_rw(req, io_size, iovec, fast_iov, iter);