]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu & hypervisor: move qemuDomainObjPreserveJob() into hypervisor
authorKristina Hanicova <khanicov@redhat.com>
Wed, 3 Aug 2022 12:43:15 +0000 (14:43 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 8 Aug 2022 10:19:31 +0000 (12:19 +0200)
This patch moves qemuDomainObjPreserveJob() as
virDomainObjPreserveJob() into hypervisor in order to be used by
other hypervisors as well.

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
src/qemu/qemu_domainjob.h
src/qemu/qemu_process.c

index 1cd9b8d7284a7ff3de87b9f1db9b46998e98e382..804a58047f148509d88056848b14463b122b5dd2 100644 (file)
@@ -174,3 +174,35 @@ virDomainObjResetAsyncJob(virDomainJobObj *job)
     if (job->cb)
         job->cb->resetJobPrivate(job->privateData);
 }
+
+/**
+ * virDomainObjPreserveJob
+ * @param currJob structure is a job that needs to be preserved
+ * @param job structure where to store job details from @currJob
+ *
+ * Saves the current job details from @currJob to @job and resets the job in @currJob.
+ *
+ * Returns 0 on success, -1 on failure.
+ */
+int
+virDomainObjPreserveJob(virDomainJobObj *currJob,
+                        virDomainJobObj *job)
+{
+    memset(job, 0, sizeof(*job));
+    job->active = currJob->active;
+    job->owner = currJob->owner;
+    job->asyncJob = currJob->asyncJob;
+    job->asyncOwner = currJob->asyncOwner;
+    job->phase = currJob->phase;
+    job->privateData = g_steal_pointer(&currJob->privateData);
+    job->apiFlags = currJob->apiFlags;
+
+    if (currJob->cb &&
+        !(currJob->privateData = currJob->cb->allocJobPrivate()))
+        return -1;
+    job->cb = currJob->cb;
+
+    virDomainObjResetJob(currJob);
+    virDomainObjResetAsyncJob(currJob);
+    return 0;
+}
index f857fccce2cedbdbaaac963e69a62ab58e6af26e..44e4bfdb4a18ae93e96ede9481191fdf2bf95586 100644 (file)
@@ -214,3 +214,6 @@ void virDomainObjResetJob(virDomainJobObj *job);
 void virDomainObjResetAgentJob(virDomainJobObj *job);
 
 void virDomainObjResetAsyncJob(virDomainJobObj *job);
+
+int virDomainObjPreserveJob(virDomainJobObj *currJob,
+                            virDomainJobObj *job);
index a0acb8fb9575403c2ca57628057b331f892b0340..abb4f859562f2223504e176e5223939b2fa8e2e8 100644 (file)
@@ -1595,6 +1595,7 @@ virDomainJobStatusToType;
 virDomainJobTypeFromString;
 virDomainJobTypeToString;
 virDomainObjInitJob;
+virDomainObjPreserveJob;
 virDomainObjResetAgentJob;
 virDomainObjResetAsyncJob;
 virDomainObjResetJob;
index 260717aa88a94f7bced0c8cb15d82c380481758c..4b8ba3f0bcb41bcb99ff25253deb93c33ce7feff 100644 (file)
@@ -150,39 +150,6 @@ qemuDomainEventEmitJobCompleted(virQEMUDriver *driver,
 }
 
 
-/**
- * qemuDomainObjPreserveJob
- * @param obj domain with a job that needs to be preserved
- * @param job structure where to store job details from @obj
- *
- * Saves the current job details from @obj to @job and resets the job in @obj.
- *
- * Returns 0 on success, -1 on failure.
- */
-int
-qemuDomainObjPreserveJob(virDomainJobObj *currJob,
-                         virDomainJobObj *job)
-{
-    memset(job, 0, sizeof(*job));
-    job->active = currJob->active;
-    job->owner = currJob->owner;
-    job->asyncJob = currJob->asyncJob;
-    job->asyncOwner = currJob->asyncOwner;
-    job->phase = currJob->phase;
-    job->privateData = g_steal_pointer(&currJob->privateData);
-    job->apiFlags = currJob->apiFlags;
-
-    if (currJob->cb &&
-        !(currJob->privateData = currJob->cb->allocJobPrivate()))
-        return -1;
-    job->cb = currJob->cb;
-
-    virDomainObjResetJob(currJob);
-    virDomainObjResetAsyncJob(currJob);
-    return 0;
-}
-
-
 void
 qemuDomainObjRestoreAsyncJob(virDomainObj *vm,
                              virDomainAsyncJob asyncJob,
index a0cd79c7052462c6d198d0d427c3e302938b2970..6272f9d84568d80954c16411601f6fc2289ccf4b 100644 (file)
@@ -105,8 +105,6 @@ qemuDomainObjStartJobPhase(virDomainObj *obj,
                            int phase);
 void qemuDomainObjSetAsyncJobMask(virDomainObj *obj,
                                   unsigned long long allowedJobs);
-int qemuDomainObjPreserveJob(virDomainJobObj *currJob,
-                             virDomainJobObj *job);
 void
 qemuDomainObjRestoreAsyncJob(virDomainObj *vm,
                              virDomainAsyncJob asyncJob,
index 22c70b2ab4cde33c988c0ef8af2636d0611f82d5..478a46bff671a9d489eb8e9dfe3e399066effbe9 100644 (file)
@@ -8879,7 +8879,7 @@ qemuProcessReconnect(void *opaque)
     cfg = virQEMUDriverGetConfig(driver);
     priv = obj->privateData;
 
-    qemuDomainObjPreserveJob(&priv->job, &oldjob);
+    virDomainObjPreserveJob(&priv->job, &oldjob);
     if (oldjob.asyncJob == VIR_ASYNC_JOB_MIGRATION_IN)
         stopFlags |= VIR_QEMU_PROCESS_STOP_MIGRATED;
     if (oldjob.asyncJob == VIR_ASYNC_JOB_BACKUP && priv->backup)