On 16.04.2015 11:24, Michael Chapman wrote: > 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 > ACK series. Even though this is rather big patch set, it fixes important bug. Therefore I'm pushing this now. Thanks for chasing the problem down. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list