vz: fix missed defined domain event

libvirt domain defined event is issued only on correspondent vz sdk
event. But in case event delivered before domain is added to
domain list we can mistakenly skip this event if prlsdkNewDomainByHandle
return NULL in case of domain is discovered in the list under
the driver lock. Let's return domain object in this case.
Now prlsdkNewDomainByHandle returns NULL only in case of
error which is more convinient.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
This commit is contained in:
Nikolay Shirokovskiy 2016-06-08 10:17:20 +03:00 committed by Maxim Nestratov
parent ac60d42384
commit b5e08e8c7e

View File

@ -1421,12 +1421,8 @@ prlsdkNewDomainByHandle(vzDriverPtr driver, PRL_HANDLE sdkdom)
goto cleanup;
/* we should make sure that there is no such a VM exists */
dom = virDomainObjListFindByUUID(driver->domains, uuid);
if (dom) {
virObjectUnlock(dom);
dom = NULL;
if ((dom = virDomainObjListFindByUUID(driver->domains, uuid)))
goto cleanup;
}
if (!(dom = vzNewDomain(driver, name, uuid)))
goto cleanup;