Commit e6f74fd6 authored by Pavel Begunkov's avatar Pavel Begunkov Committed by Jens Axboe
Browse files

io_uring: set IMPORT_BUFFER in generic send setup



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: default avatarPavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/18b74edfc61d8a1b6c9fed3b78a9276fe80f8ced.1743437358.git.asml.silence@gmail.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent e9ff9ae1
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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))