}
vm->hasManagedSave = true;
-
- if (!vm->persistent) {
- virDomainRemoveInactive(&driver->domains, vm);
- vm = NULL;
- }
-
ret = 0;
cleanup:
goto cleanup;
}
- ret = libxlDoDomainSave(driver, vm, to);
+ if (libxlDoDomainSave(driver, vm, to) < 0)
+ goto cleanup;
+
+ if (!vm->persistent) {
+ virDomainRemoveInactive(&driver->domains, vm);
+ vm = NULL;
+ }
+
+ ret = 0;
cleanup:
if (vm)
VIR_INFO("Saving state to %s", name);
- ret = libxlDoDomainSave(driver, vm, name);
+ if (libxlDoDomainSave(driver, vm, name) < 0)
+ goto cleanup;
+
+ if (!vm->persistent) {
+ virDomainRemoveInactive(&driver->domains, vm);
+ vm = NULL;
+ }
+
+ ret = 0;
cleanup:
if (vm)