From: Peter Krempa Date: Fri, 23 Feb 2018 08:03:49 +0000 (+0100) Subject: qemu: migration: Don't access disk members without lock X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=d4e57c6f04d983ade65d98716061b0d1a0f77214;p=libvirt.git qemu: migration: Don't access disk members without lock The initiation of a synchronous block job in the NBD storage migration code was placed after entering the monitor thus after the lock on the VM object was unlocked. Thankfully nothing bad could happen in this situation since the migration job prevents any disk detaches or other modifications of the domain object. Signed-off-by: Peter Krempa Reviewed-by: John Ferlan --- diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index f753e42d1b..5fa2b4b56b 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -833,11 +833,12 @@ qemuMigrationSrcDriveMirror(virQEMUDriverPtr driver, hoststr, port, diskAlias) < 0)) goto cleanup; + qemuBlockJobSyncBegin(disk); + if (qemuDomainObjEnterMonitorAsync(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) goto cleanup; - qemuBlockJobSyncBegin(disk); /* Force "raw" format for NBD export */ mon_ret = qemuMonitorDriveMirror(priv->mon, diskAlias, nbd_dest, "raw", mirror_speed, 0, 0, mirror_flags);