zc->len and zc->buf are not actually used once you get to the retry stage. The buffer remains in kmsg->msg.msg_iter, which is setup in io_send_setup. Note: it still seems needed in io_send due to io_send_select_buffer needing it (for the len parameter). Signed-off-by: Dylan Yudaken --- Hi, I'm reasonably sure this is correct - but I think Pavel might want to double check that I did not miss anything. The tests seem to pass with no changes. Thanks, Dylan io_uring/net.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/io_uring/net.c b/io_uring/net.c index a6f3cbb7dfea..8576c6cb2236 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -1493,8 +1493,6 @@ int io_send_zc(struct io_kiocb *req, unsigned int issue_flags) return -EAGAIN; if (ret > 0 && io_net_retry(sock, kmsg->msg.msg_flags)) { - zc->len -= ret; - zc->buf += ret; zc->done_io += ret; return -EAGAIN; } base-commit: 26a4cfaff82a2dcb810f6bfd5f4842f9b6046c8a -- 2.50.1