From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:44239) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RML7W-0000VI-S1 for qemu-devel@nongnu.org; Fri, 04 Nov 2011 10:51:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RML7U-0003Cg-8u for qemu-devel@nongnu.org; Fri, 04 Nov 2011 10:51:50 -0400 Received: from mail-gx0-f173.google.com ([209.85.161.173]:48301) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RML7U-0003CV-5w for qemu-devel@nongnu.org; Fri, 04 Nov 2011 10:51:48 -0400 Received: by ggnr5 with SMTP id r5so2981762ggn.4 for ; Fri, 04 Nov 2011 07:51:46 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Fri, 4 Nov 2011 15:51:17 +0100 Message-Id: <1320418284-11081-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 0/7] reorganize operation of "qemu-nbd -c" and fix it List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com This is another approach to fixing the breakage of "qemu-nbd -c" due to mixing fork with threads. It switches operation of qemu-nbd to threads completely, with the exception of daemonization which is moved as early as possible to avoid conflicts with threads. Patches 1 and 2 are bugfixes to qemu-nbd, the first more or less unrelated, the second required by the rest of the patch. Patches 3 and 4 change "qemu-nbd -c" to operate within a single process. They are enough to fix the current breakage of "qemu-nbd -c -v", but not enough for "qemu-nbd -c". For that you need patch 5 too, which moves the daemonization to before the block layer is initialized. Patches 6 and 7 remove more warts that are now easily fixed. The patches are large, but unfortunately so is the breakage. Paolo Bonzini (7): nbd: treat EPIPE from NBD_DO_IT as success qemu-nbd: trap SIGTERM qemu-nbd: rename socket variable qemu-nbd: move client to a thread qemu-nbd: print error messages from the daemon through a pipe qemu-nbd: fix socket creation race condition qemu-nbd: open the block device after starting the client thread nbd.c | 7 ++ qemu-nbd.c | 289 +++++++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 194 insertions(+), 102 deletions(-) -- 1.7.6.4