diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c index 334b45a30227356e2cd98bbe29b47c58072fc7b2..d61e14ed6db46506c2c8ab047290de2af2c4207c 100644 --- a/src/parallels/parallels_sdk.c +++ b/src/parallels/parallels_sdk.c @@ -1721,22 +1721,14 @@ PRL_RESULT prlsdkResume(parallelsConnPtr privconn, PRL_HANDLE sdkdom) } int -prlsdkDomainChangeState(virDomainPtr domain, - prlsdkChangeStateFunc chstate) +prlsdkDomainChangeStateLocked(parallelsConnPtr privconn, + virDomainObjPtr dom, + prlsdkChangeStateFunc chstate) { - parallelsConnPtr privconn = domain->conn->privateData; - virDomainObjPtr dom; parallelsDomObjPtr pdom; PRL_RESULT pret; - int ret = -1; virErrorNumber virerr; - dom = virDomainObjListFindByUUID(privconn->domains, domain->uuid); - if (dom == NULL) { - parallelsDomNotFoundError(domain); - return -1; - } - pdom = dom->privateData; pret = chstate(privconn, pdom->sdkdom); if (PRL_FAILED(pret)) { @@ -1752,12 +1744,27 @@ prlsdkDomainChangeState(virDomainPtr domain, } virReportError(virerr, "%s", _("Can't change domain state.")); - goto cleanup; + return -1; } - ret = prlsdkUpdateDomain(privconn, dom); + return prlsdkUpdateDomain(privconn, dom); +} - cleanup: +int +prlsdkDomainChangeState(virDomainPtr domain, + prlsdkChangeStateFunc chstate) +{ + parallelsConnPtr privconn = domain->conn->privateData; + virDomainObjPtr dom; + int ret = -1; + + dom = virDomainObjListFindByUUID(privconn->domains, domain->uuid); + if (dom == NULL) { + parallelsDomNotFoundError(domain); + return -1; + } + + ret = prlsdkDomainChangeStateLocked(privconn, dom, chstate); virObjectUnlock(dom); return ret; } diff --git a/src/parallels/parallels_sdk.h b/src/parallels/parallels_sdk.h index cb8d3fb66fbc890fb41ab0b1ee5c3f32fa05bf5c..780a226bf5c672d161ff03f04552190fad638e00 100644 --- a/src/parallels/parallels_sdk.h +++ b/src/parallels/parallels_sdk.h @@ -46,6 +46,10 @@ int prlsdkDomainChangeState(virDomainPtr domain, prlsdkChangeStateFunc chstate); int +prlsdkDomainChangeStateLocked(parallelsConnPtr privconn, + virDomainObjPtr dom, + prlsdkChangeStateFunc chstate); +int prlsdkApplyConfig(virConnectPtr conn, virDomainObjPtr dom, virDomainDefPtr new);