]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
io_uring: set IMPORT_BUFFER in generic send setup
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 31 Mar 2025 16:18:00 +0000 (17:18 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 21 Apr 2025 11:06:58 +0000 (05:06 -0600)
Move REQ_F_IMPORT_BUFFER to the common send setup. Currently, the only
user is send zc, but we'll want for normal sends to support that in the
future.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/18b74edfc61d8a1b6c9fed3b78a9276fe80f8ced.1743437358.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/net.c

index b9a03aeda4bbc2f26dad187aca0f56f7702e9bea..eb2130112e0e59c0c2185a8c13edc6751fe7bffe 100644 (file)
@@ -359,8 +359,10 @@ static int io_send_setup(struct io_kiocb *req, const struct io_uring_sqe *sqe)
                kmsg->msg.msg_name = &kmsg->addr;
                kmsg->msg.msg_namelen = addr_len;
        }
-       if (sr->flags & IORING_RECVSEND_FIXED_BUF)
+       if (sr->flags & IORING_RECVSEND_FIXED_BUF) {
+               req->flags |= REQ_F_IMPORT_BUFFER;
                return 0;
+       }
        if (req->flags & REQ_F_BUFFER_SELECT)
                return 0;
        return import_ubuf(ITER_SOURCE, sr->buf, sr->len, &kmsg->msg.msg_iter);
@@ -1313,8 +1315,6 @@ int io_send_zc_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
                return -ENOMEM;
 
        if (req->opcode == IORING_OP_SEND_ZC) {
-               if (zc->flags & IORING_RECVSEND_FIXED_BUF)
-                       req->flags |= REQ_F_IMPORT_BUFFER;
                ret = io_send_setup(req, sqe);
        } else {
                if (unlikely(sqe->addr2 || sqe->file_index))