io_uring: refactor out send/recv async setup
authorPavel Begunkov <asml.silence@gmail.com>
Sun, 28 Feb 2021 22:35:16 +0000 (22:35 +0000)
committerJens Axboe <axboe@kernel.dk>
Sun, 11 Apr 2021 23:41:58 +0000 (17:41 -0600)
IORING_OP_[SEND,RECV] don't need async setup neither will get into
io_req_prep_async(). Remove them from io_req_prep_async() and remove
needs_async_data checks from the related setup functions.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index bb49751..7833ccd 100644 (file)
@@ -4349,8 +4349,6 @@ static int io_sendmsg_prep_async(struct io_kiocb *req)
 {
        int ret;
 
-       if (!io_op_defs[req->opcode].needs_async_data)
-               return 0;
        ret = io_sendmsg_copy_hdr(req, req->async_data);
        if (!ret)
                req->flags |= REQ_F_NEED_CLEANUP;
@@ -4578,8 +4576,6 @@ static int io_recvmsg_prep_async(struct io_kiocb *req)
 {
        int ret;
 
-       if (!io_op_defs[req->opcode].needs_async_data)
-               return 0;
        ret = io_recvmsg_copy_hdr(req, req->async_data);
        if (!ret)
                req->flags |= REQ_F_NEED_CLEANUP;
@@ -5892,10 +5888,8 @@ static int io_req_prep_async(struct io_kiocb *req)
        case IORING_OP_WRITE:
                return io_rw_prep_async(req, WRITE);
        case IORING_OP_SENDMSG:
-       case IORING_OP_SEND:
                return io_sendmsg_prep_async(req);
        case IORING_OP_RECVMSG:
-       case IORING_OP_RECV:
                return io_recvmsg_prep_async(req);
        case IORING_OP_CONNECT:
                return io_connect_prep_async(req);