qemu_driver: unlink new domain cfg file when rollback

If we failed to unlink old dom cfg file, we goto rollback.
But inside rollback, we fogot to unlink the new dom cfg file.
This patch fixes this issue.

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Chen Hanxiao 2016-10-28 08:45:41 +08:00 committed by Michal Privoznik
parent 65462b2944
commit 3b782ce572

View File

@ -19907,6 +19907,7 @@ qemuDomainRenameCallback(virDomainObjPtr vm,
int ret = -1;
char *new_dom_name = NULL;
char *old_dom_name = NULL;
char *new_dom_cfg_file = NULL;
char *old_dom_cfg_file = NULL;
virCheckFlags(0, ret);
@ -19916,10 +19917,11 @@ qemuDomainRenameCallback(virDomainObjPtr vm,
if (VIR_STRDUP(new_dom_name, new_name) < 0)
goto cleanup;
if (!(old_dom_cfg_file = virDomainConfigFile(cfg->configDir,
vm->def->name))) {
if (!(new_dom_cfg_file = virDomainConfigFile(cfg->configDir,
new_dom_name)) ||
!(old_dom_cfg_file = virDomainConfigFile(cfg->configDir,
vm->def->name)))
goto cleanup;
}
event_old = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_UNDEFINED,
@ -19948,6 +19950,7 @@ qemuDomainRenameCallback(virDomainObjPtr vm,
cleanup:
VIR_FREE(old_dom_cfg_file);
VIR_FREE(new_dom_cfg_file);
VIR_FREE(old_dom_name);
VIR_FREE(new_dom_name);
qemuDomainEventQueue(driver, event_old);
@ -19961,6 +19964,10 @@ qemuDomainRenameCallback(virDomainObjPtr vm,
vm->def->name = old_dom_name;
old_dom_name = NULL;
}
if (virFileExists(new_dom_cfg_file))
unlink(new_dom_cfg_file);
goto cleanup;
}