[libvirt] [PATCH 12/19] qemu: backup: Return 'def' instead of 'obj' from qemuBackupBeginCollectIncrementalCheckpoints

Peter Krempa pkrempa at redhat.com
Thu Dec 12 17:18:42 UTC 2019


The object itself has no extra value and it would make testing the code
harder. Refactor it to remove just the definition pointer.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_backup.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c
index 5c9747f09d..1cd466d211 100644
--- a/src/qemu/qemu_backup.c
+++ b/src/qemu/qemu_backup.c
@@ -174,7 +174,7 @@ qemuBackupDiskDataCleanup(virDomainObjPtr vm,
 static int
 qemuBackupDiskPrepareOneBitmaps(struct qemuBackupDiskData *dd,
                                 virJSONValuePtr actions,
-                                virDomainMomentObjPtr *incremental)
+                                virDomainMomentDefPtr *incremental)
 {
     g_autoptr(virJSONValue) mergebitmaps = NULL;
     g_autoptr(virJSONValue) mergebitmapsstore = NULL;
@@ -188,7 +188,7 @@ qemuBackupDiskPrepareOneBitmaps(struct qemuBackupDiskData *dd,
     while (*incremental) {
         if (qemuMonitorTransactionBitmapMergeSourceAddBitmap(mergebitmaps,
                                                              dd->domdisk->src->nodeformat,
-                                                             (*incremental)->def->name) < 0)
+                                                             (*incremental)->name) < 0)
             return -1;

         incremental++;
@@ -232,7 +232,7 @@ qemuBackupDiskPrepareDataOne(virDomainObjPtr vm,
                              virDomainBackupDiskDefPtr backupdisk,
                              struct qemuBackupDiskData *dd,
                              virJSONValuePtr actions,
-                             virDomainMomentObjPtr *incremental,
+                             virDomainMomentDefPtr *incremental,
                              virQEMUDriverConfigPtr cfg,
                              bool removeStore)
 {
@@ -323,7 +323,7 @@ qemuBackupDiskPrepareDataOnePull(virJSONValuePtr actions,
 static ssize_t
 qemuBackupDiskPrepareData(virDomainObjPtr vm,
                           virDomainBackupDefPtr def,
-                          virDomainMomentObjPtr *incremental,
+                          virDomainMomentDefPtr *incremental,
                           virJSONValuePtr actions,
                           virQEMUDriverConfigPtr cfg,
                           struct qemuBackupDiskData **rdd,
@@ -505,24 +505,27 @@ qemuBackupBeginPullExportDisks(virDomainObjPtr vm,
  * @vm: domain object
  * @incrFrom: name of checkpoint representing starting point of incremental backup
  *
- * Returns a NULL terminated list of pointers to checkpoints in chronological
- * order starting from the 'current' checkpoint until reaching @incrFrom.
+ * Returns a NULL terminated list of pointers to checkpoint definitions in
+ * chronological order starting from the 'current' checkpoint until reaching
+ * @incrFrom.
  */
-static virDomainMomentObjPtr *
+static virDomainMomentDefPtr *
 qemuBackupBeginCollectIncrementalCheckpoints(virDomainObjPtr vm,
                                              const char *incrFrom)
 {
     virDomainMomentObjPtr n = virDomainCheckpointGetCurrent(vm->checkpoints);
-    g_autofree virDomainMomentObjPtr *incr = NULL;
+    g_autofree virDomainMomentDefPtr *incr = NULL;
     size_t nincr = 0;

     while (n) {
-        if (VIR_APPEND_ELEMENT_COPY(incr, nincr, n) < 0)
+        virDomainMomentDefPtr def = n->def;
+
+        if (VIR_APPEND_ELEMENT_COPY(incr, nincr, def) < 0)
             return NULL;

-        if (STREQ(n->def->name, incrFrom)) {
-            virDomainMomentObjPtr terminator = NULL;
-            if (VIR_APPEND_ELEMENT_COPY(incr, nincr, terminator) < 0)
+        if (STREQ(def->name, incrFrom)) {
+            def = NULL;
+            if (VIR_APPEND_ELEMENT_COPY(incr, nincr, def) < 0)
                 return NULL;

             return g_steal_pointer(&incr);
@@ -648,7 +651,7 @@ qemuBackupBegin(virDomainObjPtr vm,
     bool pull = false;
     virDomainMomentObjPtr chk = NULL;
     g_autoptr(virDomainCheckpointDef) chkdef = NULL;
-    g_autofree virDomainMomentObjPtr *incremental = NULL;
+    g_autofree virDomainMomentDefPtr *incremental = NULL;
     g_autoptr(virJSONValue) actions = NULL;
     struct qemuBackupDiskData *dd = NULL;
     ssize_t ndd = 0;
-- 
2.23.0




More information about the libvir-list mailing list