qemu: hotplug: Properly emit "DEVICE_DELETED" event when unplugging memory

The event needs to be emitted after the last monitor call, so that it's
not possible to find the device in the XML accidentally while the vm
object is unlocked.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1414393
This commit is contained in:
Peter Krempa 2017-01-20 14:24:35 +01:00
parent 6a9c7468de
commit 1d4fd2dd0f

View File

@ -3691,9 +3691,6 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver,
VIR_DEBUG("Removing memory device %s from domain %p %s",
mem->info.alias, vm, vm->def->name);
event = virDomainEventDeviceRemovedNewFromObj(vm, mem->info.alias);
qemuDomainEventQueue(driver, event);
if (virAsprintf(&backendAlias, "mem%s", mem->info.alias) < 0)
return -1;
@ -3708,6 +3705,9 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver,
if (rc < 0)
return -1;
event = virDomainEventDeviceRemovedNewFromObj(vm, mem->info.alias);
qemuDomainEventQueue(driver, event);
if ((idx = virDomainMemoryFindByDef(vm->def, mem)) >= 0)
virDomainMemoryRemove(vm->def, idx);