This patch series converts qemu_migration to use the synchronous block job event code introduced in commit 630ee5ac. It fixes two problems: - Drive mirroring has been broken since that commit, since the event indicating mirror readiness isn't processed while the VM object is locked. - Migration did not wait until the drive mirrors were properly cancelled, and this could cause disk corruption. Patch 1 moves qemuBlockJobEventProcess into a separate source file so it can be used by both qemu_driver and qemu_migration. Patch 2 introduces new qemuBlockJobSync* help functions to manage a synchronous block job. Patch 3 ensures that a thread waiting on a synchronous block job event is woken up should the domain crash. Patches 4 and 5 use the new synchronous block job helpers in qemu_driver and qemu_migration respectively. Michael Chapman (5): qemuBlockJobEventProcess: move to new source file qemuBlockJobSync*: introduce sync block job helpers qemuProcessStop: wake up pending sync block jobs qemuDomainBlockJobAbort: use sync block job helpers qemu: migration: use sync block job helpers po/POTFILES.in | 1 + src/Makefile.am | 1 + src/qemu/qemu_blockjob.c | 331 ++++++++++++++++++++++++++++++++++ src/qemu/qemu_blockjob.h | 49 ++++++ src/qemu/qemu_driver.c | 174 +++--------------- src/qemu/qemu_migration.c | 439 ++++++++++++++++++++++++++++------------------ src/qemu/qemu_process.c | 7 + 7 files changed, 676 insertions(+), 326 deletions(-) create mode 100644 src/qemu/qemu_blockjob.c create mode 100644 src/qemu/qemu_blockjob.h -- 2.1.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list