[PATCH 17/17] qemu & conf: move BeginNestedJob & BeginJobNowait into src/conf

Kristina Hanicova khanicov at redhat.com
Wed Aug 24 13:43:40 UTC 2022


Signed-off-by: Kristina Hanicova <khanicov at redhat.com>
---
 src/conf/virdomainjob.c   | 44 +++++++++++++++++++++++++++++++++++++++
 src/conf/virdomainjob.h   |  6 ++++++
 src/libvirt_private.syms  |  2 ++
 src/qemu/qemu_domain.c    |  2 +-
 src/qemu/qemu_domainjob.c | 44 ---------------------------------------
 src/qemu/qemu_domainjob.h |  7 -------
 src/qemu/qemu_driver.c    |  2 +-
 src/qemu/qemu_process.c   |  2 +-
 8 files changed, 55 insertions(+), 54 deletions(-)

diff --git a/src/conf/virdomainjob.c b/src/conf/virdomainjob.c
index 763fbfba00..fe418bcb30 100644
--- a/src/conf/virdomainjob.c
+++ b/src/conf/virdomainjob.c
@@ -558,6 +558,50 @@ int virDomainObjBeginAsyncJob(virDomainObj *obj,
     return 0;
 }
 
+int
+virDomainObjBeginNestedJob(virDomainObj *obj,
+                            virDomainAsyncJob asyncJob)
+{
+    if (asyncJob != obj->job->asyncJob) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("unexpected async job %d type expected %d"),
+                       asyncJob, obj->job->asyncJob);
+        return -1;
+    }
+
+    if (obj->job->asyncOwner != virThreadSelfID()) {
+        VIR_WARN("This thread doesn't seem to be the async job owner: %llu",
+                 obj->job->asyncOwner);
+    }
+
+    return virDomainObjBeginJobInternal(obj, obj->job,
+                                        VIR_JOB_ASYNC_NESTED,
+                                        VIR_AGENT_JOB_NONE,
+                                        VIR_ASYNC_JOB_NONE,
+                                        false);
+}
+
+/**
+ * virDomainObjBeginJobNowait:
+ *
+ * @obj: domain object
+ * @job: virDomainJob to start
+ *
+ * Acquires job for a domain object which must be locked before
+ * calling. If there's already a job running it returns
+ * immediately without any error reported.
+ *
+ * Returns: see virDomainObjBeginJobInternal
+ */
+int
+virDomainObjBeginJobNowait(virDomainObj *obj,
+                           virDomainJob job)
+{
+    return virDomainObjBeginJobInternal(obj, obj->job, job,
+                                        VIR_AGENT_JOB_NONE,
+                                        VIR_ASYNC_JOB_NONE, true);
+}
+
 /*
  * obj must be locked and have a reference before calling
  *
diff --git a/src/conf/virdomainjob.h b/src/conf/virdomainjob.h
index 3cd02ef4ae..c101334596 100644
--- a/src/conf/virdomainjob.h
+++ b/src/conf/virdomainjob.h
@@ -257,6 +257,12 @@ int virDomainObjBeginAsyncJob(virDomainObj *obj,
                               virDomainJobOperation operation,
                               unsigned long apiFlags)
     G_GNUC_WARN_UNUSED_RESULT;
+int virDomainObjBeginNestedJob(virDomainObj *obj,
+                               virDomainAsyncJob asyncJob)
+    G_GNUC_WARN_UNUSED_RESULT;
+int virDomainObjBeginJobNowait(virDomainObj *obj,
+                               virDomainJob job)
+    G_GNUC_WARN_UNUSED_RESULT;
 
 void virDomainObjEndJob(virDomainObj *obj);
 void virDomainObjEndAgentJob(virDomainObj *obj);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 8befe7ebe0..03e186fe50 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1191,6 +1191,8 @@ virDomainObjBeginAgentJob;
 virDomainObjBeginAsyncJob;
 virDomainObjBeginJob;
 virDomainObjBeginJobInternal;
+virDomainObjBeginJobNowait;
+virDomainObjBeginNestedJob;
 virDomainObjCanSetJob;
 virDomainObjClearJob;
 virDomainObjEndAgentJob;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index c494d75790..c526773633 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5968,7 +5968,7 @@ qemuDomainObjEnterMonitorInternal(virDomainObj *obj,
 
     if (asyncJob != VIR_ASYNC_JOB_NONE) {
         int ret;
-        if ((ret = qemuDomainObjBeginNestedJob(obj, asyncJob)) < 0)
+        if ((ret = virDomainObjBeginNestedJob(obj, asyncJob)) < 0)
             return ret;
         if (!virDomainObjIsActive(obj)) {
             virReportError(VIR_ERR_OPERATION_FAILED, "%s",
diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c
index 99dcdb49b9..a170fdd97d 100644
--- a/src/qemu/qemu_domainjob.c
+++ b/src/qemu/qemu_domainjob.c
@@ -655,50 +655,6 @@ qemuDomainObjReleaseAsyncJob(virDomainObj *obj)
     obj->job->asyncOwner = 0;
 }
 
-int
-qemuDomainObjBeginNestedJob(virDomainObj *obj,
-                            virDomainAsyncJob asyncJob)
-{
-    if (asyncJob != obj->job->asyncJob) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("unexpected async job %d type expected %d"),
-                       asyncJob, obj->job->asyncJob);
-        return -1;
-    }
-
-    if (obj->job->asyncOwner != virThreadSelfID()) {
-        VIR_WARN("This thread doesn't seem to be the async job owner: %llu",
-                 obj->job->asyncOwner);
-    }
-
-    return virDomainObjBeginJobInternal(obj, obj->job,
-                                        VIR_JOB_ASYNC_NESTED,
-                                        VIR_AGENT_JOB_NONE,
-                                        VIR_ASYNC_JOB_NONE,
-                                        false);
-}
-
-/**
- * qemuDomainObjBeginJobNowait:
- *
- * @obj: domain object
- * @job: virDomainJob to start
- *
- * Acquires job for a domain object which must be locked before
- * calling. If there's already a job running it returns
- * immediately without any error reported.
- *
- * Returns: see qemuDomainObjBeginJobInternal
- */
-int
-qemuDomainObjBeginJobNowait(virDomainObj *obj,
-                            virDomainJob job)
-{
-    return virDomainObjBeginJobInternal(obj, obj->job, job,
-                                        VIR_AGENT_JOB_NONE,
-                                        VIR_ASYNC_JOB_NONE, true);
-}
-
 void
 qemuDomainObjAbortAsyncJob(virDomainObj *obj)
 {
diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h
index 1cf9fcc113..c3de401aa5 100644
--- a/src/qemu/qemu_domainjob.h
+++ b/src/qemu/qemu_domainjob.h
@@ -69,13 +69,6 @@ int qemuDomainAsyncJobPhaseFromString(virDomainAsyncJob job,
 void qemuDomainEventEmitJobCompleted(virQEMUDriver *driver,
                                      virDomainObj *vm);
 
-int qemuDomainObjBeginNestedJob(virDomainObj *obj,
-                                virDomainAsyncJob asyncJob)
-    G_GNUC_WARN_UNUSED_RESULT;
-int qemuDomainObjBeginJobNowait(virDomainObj *obj,
-                                virDomainJob job)
-    G_GNUC_WARN_UNUSED_RESULT;
-
 void qemuDomainObjAbortAsyncJob(virDomainObj *obj);
 void qemuDomainObjSetJobPhase(virDomainObj *obj,
                               int phase);
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index e61a4e329b..a7ad1b1139 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18808,7 +18808,7 @@ qemuConnectGetAllDomainStats(virConnectPtr conn,
             int rv;
 
             if (flags & VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT)
-                rv = qemuDomainObjBeginJobNowait(vm, VIR_JOB_QUERY);
+                rv = virDomainObjBeginJobNowait(vm, VIR_JOB_QUERY);
             else
                 rv = virDomainObjBeginJob(vm, VIR_JOB_QUERY);
 
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 68a9efc7df..3efeeb64c5 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -8106,7 +8106,7 @@ void qemuProcessStop(virQEMUDriver *driver,
     virErrorPreserveLast(&orig_err);
 
     if (asyncJob != VIR_ASYNC_JOB_NONE) {
-        if (qemuDomainObjBeginNestedJob(vm, asyncJob) < 0)
+        if (virDomainObjBeginNestedJob(vm, asyncJob) < 0)
             goto cleanup;
     } else if (vm->job->asyncJob != VIR_ASYNC_JOB_NONE &&
                vm->job->asyncOwner == virThreadSelfID() &&
-- 
2.37.1



More information about the libvir-list mailing list