[libvirt PATCH v3 10/25] qemu_snapshot: move external disk prepare to single function

Pavel Hrdina phrdina at redhat.com
Mon Aug 14 09:36:02 UTC 2023


We will need to reuse the functionality when reverting external
snapshots.

Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
Reviewed-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_snapshot.c | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index 50f871baf3..a090ca13d4 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -527,6 +527,25 @@ qemuSnapshotPrepareDiskExternal(virDomainDiskDef *disk,
                                 bool active,
                                 bool reuse)
 {
+    if (!snapdisk->src->format) {
+        snapdisk->src->format = VIR_STORAGE_FILE_QCOW2;
+    } else if (snapdisk->src->format != VIR_STORAGE_FILE_QCOW2 &&
+               snapdisk->src->format != VIR_STORAGE_FILE_QED) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                       _("external snapshot format for disk %1$s is unsupported: %2$s"),
+                       snapdisk->name,
+                       virStorageFileFormatTypeToString(snapdisk->src->format));
+        return -1;
+    }
+
+    if (snapdisk->src->metadataCacheMaxSize > 0) {
+        if (snapdisk->src->format != VIR_STORAGE_FILE_QCOW2) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("metadata cache max size control is supported only with qcow2 images"));
+            return -1;
+        }
+    }
+
     if (qemuTranslateSnapshotDiskSourcePool(snapdisk) < 0)
         return -1;
 
@@ -707,25 +726,6 @@ qemuSnapshotPrepare(virDomainObj *vm,
             break;
 
         case VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL:
-            if (!disk->src->format) {
-                disk->src->format = VIR_STORAGE_FILE_QCOW2;
-            } else if (disk->src->format != VIR_STORAGE_FILE_QCOW2 &&
-                       disk->src->format != VIR_STORAGE_FILE_QED) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                               _("external snapshot format for disk %1$s is unsupported: %2$s"),
-                               disk->name,
-                               virStorageFileFormatTypeToString(disk->src->format));
-                return -1;
-            }
-
-            if (disk->src->metadataCacheMaxSize > 0) {
-                if (disk->src->format != VIR_STORAGE_FILE_QCOW2) {
-                    virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                                   _("metadata cache max size control is supported only with qcow2 images"));
-                    return -1;
-                }
-            }
-
             if (qemuSnapshotPrepareDiskExternal(dom_disk, disk, active, reuse) < 0)
                 return -1;
 
-- 
2.41.0



More information about the libvir-list mailing list