]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: move virDomainNestedJobAllowed into hypervisor
authorKristina Hanicova <khanicov@redhat.com>
Wed, 3 Aug 2022 12:43:21 +0000 (14:43 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 8 Aug 2022 10:19:47 +0000 (12:19 +0200)
Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/hypervisor/domain_job.c
src/hypervisor/domain_job.h
src/libvirt_private.syms
src/qemu/qemu_domainjob.c

index 08e84d575f4ee774b205800ffc1f72cebed5200c..6a7116fb2aa8a15bb9b55ab729abcda123b8f922 100644 (file)
@@ -226,3 +226,11 @@ virDomainTrackJob(virDomainJob job)
 {
     return (VIR_DOMAIN_TRACK_JOBS & JOB_MASK(job)) != 0;
 }
+
+bool
+virDomainNestedJobAllowed(virDomainJobObj *jobs, virDomainJob newJob)
+{
+    return !jobs->asyncJob ||
+           newJob == VIR_JOB_NONE ||
+           (jobs->mask & JOB_MASK(newJob));
+}
index 824876b4601b085d94d4b90ad401164719d19631..618fba45bd21a139889e4a1bd9993c79dc416dd9 100644 (file)
@@ -222,3 +222,5 @@ void virDomainObjClearJob(virDomainJobObj *job);
 G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(virDomainJobObj, virDomainObjClearJob);
 
 bool virDomainTrackJob(virDomainJob job);
+
+bool virDomainNestedJobAllowed(virDomainJobObj *jobs, virDomainJob newJob);
index b7104b2789265fc1b1cbe7fbc6e3d91798a751cb..4129b434ed40fd422651ff9259be30ea5f9ff5af 100644 (file)
@@ -1594,6 +1594,7 @@ virDomainJobDataInit;
 virDomainJobStatusToType;
 virDomainJobTypeFromString;
 virDomainJobTypeToString;
+virDomainNestedJobAllowed;
 virDomainObjClearJob;
 virDomainObjInitJob;
 virDomainObjPreserveJob;
index f92ec44cb7acc9b6bc093830dbd24fb63016d122..46fb2d704be1f59b9ed617e5f4471d84b0a8e52a 100644 (file)
@@ -697,14 +697,6 @@ qemuDomainObjReleaseAsyncJob(virDomainObj *obj)
     priv->job.asyncOwner = 0;
 }
 
-static bool
-qemuDomainNestedJobAllowed(virDomainJobObj *jobs, virDomainJob newJob)
-{
-    return !jobs->asyncJob ||
-           newJob == VIR_JOB_NONE ||
-           (jobs->mask & JOB_MASK(newJob)) != 0;
-}
-
 static bool
 qemuDomainObjCanSetJob(virDomainJobObj *job,
                        virDomainJob newJob,
@@ -787,7 +779,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriver *driver,
         goto error;
     }
 
-    while (!nested && !qemuDomainNestedJobAllowed(&priv->job, job)) {
+    while (!nested && !virDomainNestedJobAllowed(&priv->job, job)) {
         if (nowait)
             goto cleanup;
 
@@ -807,7 +799,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriver *driver,
 
     /* No job is active but a new async job could have been started while obj
      * was unlocked, so we need to recheck it. */
-    if (!nested && !qemuDomainNestedJobAllowed(&priv->job, job))
+    if (!nested && !virDomainNestedJobAllowed(&priv->job, job))
         goto retry;
 
     if (obj->removing) {
@@ -896,7 +888,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriver *driver,
              duration / 1000, agentDuration / 1000, asyncDuration / 1000);
 
     if (job) {
-        if (nested || qemuDomainNestedJobAllowed(&priv->job, job))
+        if (nested || virDomainNestedJobAllowed(&priv->job, job))
             blocker = priv->job.ownerAPI;
         else
             blocker = priv->job.asyncOwnerAPI;