[PATCH v2 2/6] parallels: split prlsdkDomainChangeState function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Split function prlsdkDomainChangeState into
prlsdkDomainChangeStateLocked and prlsdkDomainChangeState.
So it can be used from places, where virDomainObj already
found and locked.

Signed-off-by: Dmitry Guryanov <dguryanov@xxxxxxxxxxxxx>
---
 src/parallels/parallels_sdk.c | 35 +++++++++++++++++++++--------------
 src/parallels/parallels_sdk.h |  4 ++++
 2 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c
index c36b772..d985a93 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 cb8d3fb..780a226 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);
-- 
2.1.0

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]