VIR_WARN("Unable to release lease on %s", vm->def->name);
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
- VIR_WARN("Unable to save status on vm %s after state change",
- vm->def->name);
- }
-
switch (action) {
case VIR_DOMAIN_LIFECYCLE_CRASH_COREDUMP_DESTROY:
if (doCoreDumpToAutoDumpPath(driver, vm, VIR_DUMP_MEMORY_ONLY) < 0) {
}
cleanup:
+ if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
+ VIR_WARN("Unable to save status on vm %s after state change",
+ vm->def->name);
+ }
+
virObjectUnref(cfg);
}
virQEMUDriverPtr driver = opaque;
virObjectEventPtr event;
qemuDomainObjPrivatePtr priv;
+ virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
virObjectLock(vm);
priv = vm->privateData;
if (priv->agent)
qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_RESET);
+ /* Clear some domain runtime information. For instance,
+ * fsfreeze won't survive domain reset. This, however,
+ * required the domain status file to be rewritten onto disk. */
+ priv->quiesced = false;
+
+ if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
+ VIR_WARN("Failed to save status on vm %s", vm->def->name);
virObjectUnlock(vm);
if (event)
qemuDomainEventQueue(driver, event);
+ virObjectUnref(cfg);
return 0;
}
virPortAllocatorRelease(driver->migrationPorts, priv->nbdPort);
priv->nbdPort = 0;
+ priv->quiesced = false;
if (priv->agent) {
qemuAgentClose(priv->agent);