diff --git a/io_uring/net.c b/io_uring/net.c
index 97a48408cec39b2e821fd051fb28ba67e5e7fc6f..050bea5e72569b6890cddadd0007efeb52b18bdd 100644
--- a/io_uring/net.c
+++ b/io_uring/net.c
@@ -623,6 +623,7 @@ int io_send(struct io_kiocb *req, unsigned int issue_flags)
 		if (arg.iovs != &kmsg->fast_iov && arg.iovs != kmsg->free_iov) {
 			kmsg->free_iov_nr = ret;
 			kmsg->free_iov = arg.iovs;
+			req->flags |= REQ_F_NEED_CLEANUP;
 		}
 	}