@@ -382,6 +382,10 @@ static int io_send_setup(struct io_kiocb *req, const struct io_uring_sqe *sqe)
382382 }
383383 if (req -> flags & REQ_F_BUFFER_SELECT )
384384 return 0 ;
385+
386+ if (sr -> flags & IORING_SEND_VECTORIZED )
387+ return io_net_import_vec (req , kmsg , sr -> buf , sr -> len , ITER_SOURCE );
388+
385389 return import_ubuf (ITER_SOURCE , sr -> buf , sr -> len , & kmsg -> msg .msg_iter );
386390}
387391
@@ -409,7 +413,7 @@ static int io_sendmsg_setup(struct io_kiocb *req, const struct io_uring_sqe *sqe
409413 return io_net_import_vec (req , kmsg , msg .msg_iov , msg .msg_iovlen , ITER_SOURCE );
410414}
411415
412- #define SENDMSG_FLAGS (IORING_RECVSEND_POLL_FIRST | IORING_RECVSEND_BUNDLE)
416+ #define SENDMSG_FLAGS (IORING_RECVSEND_POLL_FIRST | IORING_RECVSEND_BUNDLE | IORING_SEND_VECTORIZED )
413417
414418int io_sendmsg_prep (struct io_kiocb * req , const struct io_uring_sqe * sqe )
415419{
@@ -1318,7 +1322,8 @@ void io_send_zc_cleanup(struct io_kiocb *req)
13181322}
13191323
13201324#define IO_ZC_FLAGS_COMMON (IORING_RECVSEND_POLL_FIRST | IORING_RECVSEND_FIXED_BUF)
1321- #define IO_ZC_FLAGS_VALID (IO_ZC_FLAGS_COMMON | IORING_SEND_ZC_REPORT_USAGE)
1325+ #define IO_ZC_FLAGS_VALID (IO_ZC_FLAGS_COMMON | IORING_SEND_ZC_REPORT_USAGE | \
1326+ IORING_SEND_VECTORIZED)
13221327
13231328int io_send_zc_prep (struct io_kiocb * req , const struct io_uring_sqe * sqe )
13241329{
0 commit comments