]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuBackupJobTerminate: Move cleanup of temp files earlier
authorPeter Krempa <pkrempa@redhat.com>
Thu, 25 Feb 2021 12:32:10 +0000 (13:32 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 1 Mar 2021 14:44:47 +0000 (15:44 +0100)
Upcoming patch will remove unnecessary actions if the VM crashed. The
cleanup needs to be performed always, thus needs to be moved earlier.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_backup.c

index 423de9c719acffc27b4a3165227a14c67de261a5..d3d98c1d6a7a0ca561b3a8ca31c3838b82583d02 100644 (file)
@@ -560,21 +560,6 @@ qemuBackupJobTerminate(virDomainObjPtr vm,
     qemuDomainObjPrivatePtr priv = vm->privateData;
     size_t i;
 
-    qemuDomainJobInfoUpdateTime(priv->job.current);
-
-    g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree);
-    priv->job.completed = qemuDomainJobInfoCopy(priv->job.current);
-
-    priv->job.completed->stats.backup.total = priv->backup->push_total;
-    priv->job.completed->stats.backup.transferred = priv->backup->push_transferred;
-    priv->job.completed->stats.backup.tmp_used = priv->backup->pull_tmp_used;
-    priv->job.completed->stats.backup.tmp_total = priv->backup->pull_tmp_total;
-
-    priv->job.completed->status = jobstatus;
-    priv->job.completed->errmsg = g_strdup(priv->backup->errmsg);
-
-    qemuDomainEventEmitJobCompleted(priv->driver, vm);
-
     if (!(priv->job.apiFlags & VIR_DOMAIN_BACKUP_BEGIN_REUSE_EXTERNAL) &&
         (priv->backup->type == VIR_DOMAIN_BACKUP_TYPE_PULL ||
          (priv->backup->type == VIR_DOMAIN_BACKUP_TYPE_PUSH &&
@@ -598,6 +583,21 @@ qemuBackupJobTerminate(virDomainObjPtr vm,
         }
     }
 
+    qemuDomainJobInfoUpdateTime(priv->job.current);
+
+    g_clear_pointer(&priv->job.completed, qemuDomainJobInfoFree);
+    priv->job.completed = qemuDomainJobInfoCopy(priv->job.current);
+
+    priv->job.completed->stats.backup.total = priv->backup->push_total;
+    priv->job.completed->stats.backup.transferred = priv->backup->push_transferred;
+    priv->job.completed->stats.backup.tmp_used = priv->backup->pull_tmp_used;
+    priv->job.completed->stats.backup.tmp_total = priv->backup->pull_tmp_total;
+
+    priv->job.completed->status = jobstatus;
+    priv->job.completed->errmsg = g_strdup(priv->backup->errmsg);
+
+    qemuDomainEventEmitJobCompleted(priv->driver, vm);
+
     virDomainBackupDefFree(priv->backup);
     priv->backup = NULL;
     qemuDomainObjEndAsyncJob(priv->driver, vm);