[PATCH 05/11] qemu & hypervisor: move qemuDomainObjClearJob() into hypervisor

Kristina Hanicova khanicov at redhat.com
Wed Aug 3 12:43:16 UTC 2022


This patch moves qemuDomainObjClearJob() as
virDomainObjClearJob() into hypervisor in order to be used by
other hypervisors as well.

Signed-off-by: Kristina Hanicova <khanicov at redhat.com>
---
 src/hypervisor/domain_job.c | 14 ++++++++++++++
 src/hypervisor/domain_job.h |  3 +++
 src/libvirt_private.syms    |  1 +
 src/qemu/qemu_domain.c      |  2 +-
 src/qemu/qemu_domainjob.c   | 14 --------------
 src/qemu/qemu_domainjob.h   |  3 ---
 6 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/src/hypervisor/domain_job.c b/src/hypervisor/domain_job.c
index 804a58047f..2a19811670 100644
--- a/src/hypervisor/domain_job.c
+++ b/src/hypervisor/domain_job.c
@@ -206,3 +206,17 @@ virDomainObjPreserveJob(virDomainJobObj *currJob,
     virDomainObjResetAsyncJob(currJob);
     return 0;
 }
+
+void
+virDomainObjClearJob(virDomainJobObj *job)
+{
+    virDomainObjResetJob(job);
+    virDomainObjResetAsyncJob(job);
+    g_clear_pointer(&job->current, virDomainJobDataFree);
+    g_clear_pointer(&job->completed, virDomainJobDataFree);
+    virCondDestroy(&job->cond);
+    virCondDestroy(&job->asyncCond);
+
+    if (job->cb)
+        g_clear_pointer(&job->privateData, job->cb->freeJobPrivate);
+}
diff --git a/src/hypervisor/domain_job.h b/src/hypervisor/domain_job.h
index 44e4bfdb4a..53ce6706d4 100644
--- a/src/hypervisor/domain_job.h
+++ b/src/hypervisor/domain_job.h
@@ -217,3 +217,6 @@ void virDomainObjResetAsyncJob(virDomainJobObj *job);
 
 int virDomainObjPreserveJob(virDomainJobObj *currJob,
                             virDomainJobObj *job);
+
+void virDomainObjClearJob(virDomainJobObj *job);
+G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(virDomainJobObj, virDomainObjClearJob);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index edfa38c857..0e355abd69 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1590,6 +1590,7 @@ virDomainJobDataInit;
 virDomainJobStatusToType;
 virDomainJobTypeFromString;
 virDomainJobTypeToString;
+virDomainObjClearJob;
 virDomainObjInitJob;
 virDomainObjPreserveJob;
 virDomainObjResetAgentJob;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index a53c25f36e..8beb2f31c1 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1716,7 +1716,7 @@ qemuDomainObjPrivateFree(void *data)
     qemuDomainObjPrivateDataClear(priv);
 
     virObjectUnref(priv->monConfig);
-    qemuDomainObjClearJob(&priv->job);
+    virDomainObjClearJob(&priv->job);
     g_free(priv->lockState);
     g_free(priv->origname);
 
diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c
index 4b8ba3f0bc..f323f28c77 100644
--- a/src/qemu/qemu_domainjob.c
+++ b/src/qemu/qemu_domainjob.c
@@ -185,20 +185,6 @@ qemuDomainObjRestoreAsyncJob(virDomainObj *vm,
 }
 
 
-void
-qemuDomainObjClearJob(virDomainJobObj *job)
-{
-    virDomainObjResetJob(job);
-    virDomainObjResetAsyncJob(job);
-    g_clear_pointer(&job->current, virDomainJobDataFree);
-    g_clear_pointer(&job->completed, virDomainJobDataFree);
-    virCondDestroy(&job->cond);
-    virCondDestroy(&job->asyncCond);
-
-    if (job->cb)
-        g_clear_pointer(&job->privateData, job->cb->freeJobPrivate);
-}
-
 bool
 qemuDomainTrackJob(virDomainJob job)
 {
diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h
index 6272f9d845..eed94cd87c 100644
--- a/src/qemu/qemu_domainjob.h
+++ b/src/qemu/qemu_domainjob.h
@@ -133,9 +133,6 @@ int qemuDomainJobDataToParams(virDomainJobData *jobData,
 
 bool qemuDomainTrackJob(virDomainJob job);
 
-void qemuDomainObjClearJob(virDomainJobObj *job);
-G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(virDomainJobObj, qemuDomainObjClearJob);
-
 int
 qemuDomainObjPrivateXMLFormatJob(virBuffer *buf,
                                  virDomainObj *vm);
-- 
2.37.1



More information about the libvir-list mailing list