libxlDriverConfig *cfg = libxlDriverConfigGet(driver);
libxlDomainObjPrivate *priv = vm->privateData;
virObjectEvent *event = NULL;
- int ret = -1;
if (cancelled) {
/* Resume lock process that was paused in MigrationSrcPerform */
vm,
priv->lockState);
priv->lockProcessRunning = true;
- if (libxl_domain_resume(cfg->ctx, vm->def->id, 1, 0) == 0) {
- ret = 0;
- } else {
- VIR_DEBUG("Unable to resume domain '%s' after failed migration",
- vm->def->name);
- virDomainObjSetState(vm, VIR_DOMAIN_PAUSED,
- VIR_DOMAIN_PAUSED_MIGRATION);
- event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED,
- VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED);
- ignore_value(virDomainObjSave(vm, driver->xmlopt, cfg->stateDir));
- }
goto cleanup;
}
if (!vm->persistent || (flags & VIR_MIGRATE_UNDEFINE_SOURCE))
virDomainObjListRemove(driver->domains, vm);
- ret = 0;
-
cleanup:
/* EndJob for corresponding BeginJob in begin phase */
virDomainObjEndJob(vm);
virObjectEventStateQueue(driver->domainEventState, event);
virObjectUnref(cfg);
- return ret;
+ return 0;
}