return ret;
stopjob:
- ignore_value(qemuMigrationResetTLS(driver, vm,
- QEMU_ASYNC_JOB_MIGRATION_IN,
- tlsAlias, secAlias));
+ qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN);
if (stopProcess) {
unsigned int stopFlags = VIR_QEMU_PROCESS_STOP_MIGRATED;
qemuDomainEventQueue(driver, event);
}
- qemuMigrationResetTLS(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
- NULL, NULL);
+ qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT);
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
VIR_WARN("Failed to save status on vm %s", vm->def->name);
* here
*/
if (!v3proto && ret < 0)
- qemuMigrationResetTLS(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
- NULL, NULL);
+ qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT);
if (qemuMigrationRestoreDomainState(conn, vm)) {
event = virDomainEventLifecycleNewFromObj(vm,
QEMU_ASYNC_JOB_MIGRATION_IN);
}
- qemuMigrationResetTLS(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, NULL, NULL);
+ qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN);
qemuMigrationJobFinish(driver, vm);
if (!virDomainObjIsActive(vm))
return 0;
}
+
+
+/*
+ * qemuMigrationReset:
+ *
+ * Reset all migration parameters so that the next job which internally uses
+ * migration (save, managedsave, snapshots, dump) will not try to use them.
+ */
+void
+qemuMigrationReset(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ qemuDomainAsyncJob job)
+{
+ if (!virDomainObjIsActive(vm))
+ return;
+
+ if (qemuMigrationResetTLS(driver, vm, job, NULL, NULL) < 0)
+ return;
+}
break;
}
- qemuMigrationResetTLS(driver, vm, QEMU_ASYNC_JOB_NONE, NULL, NULL);
+ qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_NONE);
return 0;
}
}
}
- qemuMigrationResetTLS(driver, vm, QEMU_ASYNC_JOB_NONE, NULL, NULL);
+ qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_NONE);
return 0;
}