Am 04.11.2011 15:51, schrieb Paolo Bonzini: > 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(-)
Thanks, applied all to the block-stable branch (for 1.0) Kevin