[sheepdog] [PATCH 02/11] iov: handle EOF in iov_send_recv
Paolo Bonzini
pbonzini at redhat.com
Tue Jul 23 13:28:17 CEST 2013
Il 23/07/2013 10:30, MORITA Kazutaka ha scritto:
> Without this patch, iov_send_recv() never returns when do_send_recv()
> returns zero.
>
> Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
> ---
> util/iov.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/util/iov.c b/util/iov.c
> index cc6e837..f705586 100644
> --- a/util/iov.c
> +++ b/util/iov.c
> @@ -202,6 +202,12 @@ ssize_t iov_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt,
> return -1;
> }
>
> + if (ret == 0 && !do_send) {
> + /* recv returns 0 when the peer has performed an orderly
> + * shutdown. */
> + break;
> + }
> +
> /* Prepare for the next iteration */
> offset += ret;
> total += ret;
>
Reviewed-by: Paolo Bonzini <pbonzini at redhat.com>
... and should also be in 1.5.2.
Paolo
More information about the sheepdog
mailing list