diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index ac228efd5373..6852878e7762 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -5094,7 +5094,6 @@ static int io_recv(struct io_kiocb *req, unsigned int issue_flags) min_ret = iov_iter_count(&msg.msg_iter); ret = sock_recvmsg(sock, &msg, flags); -out_free: if (ret < min_ret) { if (ret == -EAGAIN && force_nonblock) return -EAGAIN; @@ -5109,6 +5108,7 @@ static int io_recv(struct io_kiocb *req, unsigned int issue_flags) } req_set_fail(req); } else if ((flags & MSG_WAITALL) && (msg.msg_flags & (MSG_TRUNC | MSG_CTRUNC))) { +out_free: req_set_fail(req); } if (req->flags & REQ_F_BUFFER_SELECTED)