]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libxl: use virDomainJobData instead of virDomainJobInfo
authorKristina Hanicova <khanicov@redhat.com>
Fri, 11 Feb 2022 13:49:07 +0000 (14:49 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 15 Feb 2022 11:20:45 +0000 (12:20 +0100)
This transition will make it easier for me to generalize jobs in
the future as they will always use virDomainJobData and
virDomainJobInfo will be only used in the public api..

Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
src/libxl/libxl_domain.c
src/libxl/libxl_domain.h
src/libxl/libxl_driver.c

index b995f20a6457c43d5c68b88f3d4833d3ccf248ba..c91e531a9ab8c42f5db2fa70d2bcadf144704067 100644 (file)
@@ -60,7 +60,7 @@ libxlDomainObjInitJob(libxlDomainObjPrivate *priv)
     if (virCondInit(&priv->job.cond) < 0)
         return -1;
 
-    priv->job.current = g_new0(virDomainJobInfo, 1);
+    priv->job.current = virDomainJobDataInit(NULL);
 
     return 0;
 }
@@ -78,7 +78,7 @@ static void
 libxlDomainObjFreeJob(libxlDomainObjPrivate *priv)
 {
     ignore_value(virCondDestroy(&priv->job.cond));
-    VIR_FREE(priv->job.current);
+    virDomainJobDataFree(priv->job.current);
 }
 
 /* Give up waiting for mutex after 30 seconds */
@@ -119,7 +119,7 @@ libxlDomainObjBeginJob(libxlDriverPrivate *driver G_GNUC_UNUSED,
     priv->job.active = job;
     priv->job.owner = virThreadSelfID();
     priv->job.started = now;
-    priv->job.current->type = VIR_DOMAIN_JOB_UNBOUNDED;
+    priv->job.current->jobType = VIR_DOMAIN_JOB_UNBOUNDED;
 
     return 0;
 
@@ -168,7 +168,7 @@ libxlDomainObjEndJob(libxlDriverPrivate *driver G_GNUC_UNUSED,
 int
 libxlDomainJobUpdateTime(struct libxlDomainJobObj *job)
 {
-    virDomainJobInfoPtr jobInfo = job->current;
+    virDomainJobData *jobData = job->current;
     unsigned long long now;
 
     if (!job->started)
@@ -182,7 +182,7 @@ libxlDomainJobUpdateTime(struct libxlDomainJobObj *job)
         return 0;
     }
 
-    jobInfo->timeElapsed = now - job->started;
+    jobData->timeElapsed = now - job->started;
     return 0;
 }
 
index 981bfc2bcac9b5a8e745ad9edd72960e49846c19..475e4a693310983b0c44a7cbc064ff2cd77c0a94 100644 (file)
@@ -26,6 +26,7 @@
 #include "libxl_conf.h"
 #include "virchrdev.h"
 #include "virenum.h"
+#include "domain_job.h"
 
 /* Only 1 job is allowed at any time
  * A job includes *all* libxl.so api, even those just querying
@@ -46,7 +47,7 @@ struct libxlDomainJobObj {
     enum libxlDomainJob active;         /* Currently running job */
     int owner;                          /* Thread which set current job */
     unsigned long long started;         /* When the job started */
-    virDomainJobInfoPtr current;        /* Statistics for the current job */
+    virDomainJobData *current;        /* Statistics for the current job */
 };
 
 typedef struct _libxlDomainObjPrivate libxlDomainObjPrivate;
index 97965aaf1d6741c2b486d6cba76861584d006f83..4c61d330edb9f2097708a4506a7b14e72d14e3b5 100644 (file)
@@ -5235,7 +5235,11 @@ libxlDomainGetJobInfo(virDomainPtr dom,
     if (libxlDomainJobUpdateTime(&priv->job) < 0)
         goto cleanup;
 
-    memcpy(info, priv->job.current, sizeof(virDomainJobInfo));
+    /* setting only these two attributes is enough because libxl never sets
+     * anything else */
+    memset(info, 0, sizeof(*info));
+    info->type = priv->job.current->jobType;
+    info->timeElapsed = priv->job.current->timeElapsed;
     ret = 0;
 
  cleanup:
@@ -5252,7 +5256,7 @@ libxlDomainGetJobStats(virDomainPtr dom,
 {
     libxlDomainObjPrivate *priv;
     virDomainObj *vm;
-    virDomainJobInfoPtr jobInfo;
+    virDomainJobData *jobData;
     int ret = -1;
     int maxparams = 0;
 
@@ -5266,7 +5270,7 @@ libxlDomainGetJobStats(virDomainPtr dom,
         goto cleanup;
 
     priv = vm->privateData;
-    jobInfo = priv->job.current;
+    jobData = priv->job.current;
     if (!priv->job.active) {
         *type = VIR_DOMAIN_JOB_NONE;
         *params = NULL;
@@ -5283,10 +5287,10 @@ libxlDomainGetJobStats(virDomainPtr dom,
 
     if (virTypedParamsAddULLong(params, nparams, &maxparams,
                                 VIR_DOMAIN_JOB_TIME_ELAPSED,
-                                jobInfo->timeElapsed) < 0)
+                                jobData->timeElapsed) < 0)
         goto cleanup;
 
-    *type = jobInfo->type;
+    *type = jobData->jobType;
     ret = 0;
 
  cleanup: