The virDomainObjListRemove will return an unlocked
@vm after calling with a reffed object, thus prior
to calling virDomainObjEndAPI we should relock.
Signed-off-by: John Ferlan <jferlan@redhat.com>
if (virDomainSaveConfig(cfg->configDir, driver->caps,
vm->newDef ? vm->newDef : vm->def) < 0) {
virDomainObjListRemove(driver->domains, vm);
+ virObjectLock(vm);
goto cleanup;
}
vm->persistent = 0;
} else {
virDomainObjListRemove(driver->domains, vm);
+ virObjectLock(vm);
}
ret = 0;
endjob:
virLXCDomainObjEndJob(driver, vm);
- if (!vm->persistent)
+ if (!vm->persistent) {
virDomainObjListRemove(driver->domains, vm);
+ virObjectLock(vm);
+ }
cleanup:
virDomainObjEndAPI(&vm);