[PATCH 6/7] qemu: domain: Move qemuDomainObjPrivateAlloc after qemuDomainObjPrivateFree

Peter Krempa pkrempa at redhat.com
Fri Jul 23 09:05:49 UTC 2021


The freeing function will be needed to undo failures in allocation.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_domain.c | 61 +++++++++++++++++++++---------------------
 1 file changed, 31 insertions(+), 30 deletions(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index b919da6eab..8d1ecc0140 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1772,36 +1772,6 @@ qemuDomainObjStopWorker(virDomainObj *dom)
 }


-static void *
-qemuDomainObjPrivateAlloc(void *opaque)
-{
-    qemuDomainObjPrivate *priv;
-
-    priv = g_new0(qemuDomainObjPrivate, 1);
-
-    if (qemuDomainObjInitJob(&priv->job, &qemuPrivateJobCallbacks) < 0) {
-        virReportSystemError(errno, "%s",
-                             _("Unable to init qemu driver mutexes"));
-        goto error;
-    }
-
-    if (!(priv->devs = virChrdevAlloc()))
-        goto error;
-
-    priv->blockjobs = virHashNew(virObjectFreeHashData);
-
-    /* agent commands block by default, user can choose different behavior */
-    priv->agentTimeout = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK;
-    priv->migMaxBandwidth = QEMU_DOMAIN_MIG_BANDWIDTH_MAX;
-    priv->driver = opaque;
-
-    return priv;
-
- error:
-    VIR_FREE(priv);
-    return NULL;
-}
-
 /**
  * qemuDomainObjPrivateDataClear:
  * @priv: domain private data
@@ -1922,6 +1892,37 @@ qemuDomainObjPrivateFree(void *data)
 }


+static void *
+qemuDomainObjPrivateAlloc(void *opaque)
+{
+    qemuDomainObjPrivate *priv;
+
+    priv = g_new0(qemuDomainObjPrivate, 1);
+
+    if (qemuDomainObjInitJob(&priv->job, &qemuPrivateJobCallbacks) < 0) {
+        virReportSystemError(errno, "%s",
+                             _("Unable to init qemu driver mutexes"));
+        goto error;
+    }
+
+    if (!(priv->devs = virChrdevAlloc()))
+        goto error;
+
+    priv->blockjobs = virHashNew(virObjectFreeHashData);
+
+    /* agent commands block by default, user can choose different behavior */
+    priv->agentTimeout = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK;
+    priv->migMaxBandwidth = QEMU_DOMAIN_MIG_BANDWIDTH_MAX;
+    priv->driver = opaque;
+
+    return priv;
+
+ error:
+    VIR_FREE(priv);
+    return NULL;
+}
+
+
 static int
 qemuStorageSourcePrivateDataAssignSecinfo(qemuDomainSecretInfo **secinfo,
                                           char **alias)
-- 
2.31.1




More information about the libvir-list mailing list