From: Paolo Bonzini Date: Fri, 4 Nov 2011 14:51:18 +0000 (+0100) Subject: nbd: treat EPIPE from NBD_DO_IT as success X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=74624688b3c003d1ed2763953aaf59974965fa22;p=qemu.git nbd: treat EPIPE from NBD_DO_IT as success This can be seen with "qemu-nbd -v -c", which returns 1 instead of 0 when you disconnect with "qemu-nbd -d". Signed-off-by: Paolo Bonzini Signed-off-by: Kevin Wolf --- diff --git a/nbd.c b/nbd.c index fb5e424abe..e6c931c5ce 100644 --- a/nbd.c +++ b/nbd.c @@ -425,6 +425,13 @@ int nbd_client(int fd) TRACE("Doing NBD loop"); ret = ioctl(fd, NBD_DO_IT); + if (ret == -1 && errno == EPIPE) { + /* NBD_DO_IT normally returns EPIPE when someone has disconnected + * the socket via NBD_DISCONNECT. We do not want to return 1 in + * that case. + */ + ret = 0; + } serrno = errno; TRACE("NBD loop returned %d: %s", ret, strerror(serrno));