qemu: Always remove domain object if MigratePrepare fails

If migration failed in Prepare phase after virDomainAssignDef and before
a job was started, the domain object was not properly removed.
This commit is contained in:
Jiri Denemark 2011-09-26 13:36:37 +02:00
parent 03d89991f2
commit 1cb031a2bb

View File

@ -1178,8 +1178,12 @@ cleanup:
virDomainDefFree(def);
VIR_FORCE_CLOSE(dataFD[0]);
VIR_FORCE_CLOSE(dataFD[1]);
if (vm)
if (vm) {
if (ret >= 0 || vm->persistent)
virDomainObjUnlock(vm);
else
qemuDomainRemoveInactive(driver, vm);
}
if (event)
qemuDomainEventQueue(driver, event);
qemuMigrationCookieFree(mig);
@ -1188,9 +1192,6 @@ cleanup:
endjob:
if (qemuMigrationJobFinish(driver, vm) == 0) {
vm = NULL;
} else if (!vm->persistent) {
qemuDomainRemoveInactive(driver, vm);
vm = NULL;
}
goto cleanup;
}