From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:44271) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RML7Z-0000Wg-Qg for qemu-devel@nongnu.org; Fri, 04 Nov 2011 10:51:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RML7W-0003D0-0y for qemu-devel@nongnu.org; Fri, 04 Nov 2011 10:51:53 -0400 Received: from mail-gy0-f173.google.com ([209.85.160.173]:61816) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RML7V-0003Co-Ue for qemu-devel@nongnu.org; Fri, 04 Nov 2011 10:51:49 -0400 Received: by gyb11 with SMTP id 11so1197703gyb.4 for ; Fri, 04 Nov 2011 07:51:49 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Fri, 4 Nov 2011 15:51:18 +0100 Message-Id: <1320418284-11081-2-git-send-email-pbonzini@redhat.com> In-Reply-To: <1320418284-11081-1-git-send-email-pbonzini@redhat.com> References: <1320418284-11081-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 1/7] nbd: treat EPIPE from NBD_DO_IT as success List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com 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 --- I think this is a bug (because there would be no way to exit qemu-nbd with zero status!), but the patch can be left out safely. nbd.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/nbd.c b/nbd.c index fb5e424..e6c931c 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)); -- 1.7.6.4