]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
backup: Move file format check from parser to qemu driver
authorPeter Krempa <pkrempa@redhat.com>
Mon, 7 Dec 2020 16:05:40 +0000 (17:05 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 8 Dec 2020 14:12:33 +0000 (15:12 +0100)
It's a technical detail in qemu that QCOW2 is needed for a pull-mode
backup.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/backup_conf.c
src/qemu/qemu_backup.c

index ea812cc432eaac92c1f76ee4d4a2675ae6944a79..47e3bc1d60de56e262775cf8d8cf86c016b3a4dd 100644 (file)
@@ -204,11 +204,6 @@ virDomainBackupDiskDefParseXML(xmlNodePtr node,
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                            _("unknown disk backup driver '%s'"), driver);
             return -1;
-        } else if (!push && def->store->format != VIR_STORAGE_FILE_QCOW2) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                           _("pull mode requires qcow2 driver, not '%s'"),
-                           driver);
-            return -1;
         }
     }
 
index 09f7921ea7940d0360b630f391b88d48a4096f60..b2340eb1cf12c195f4fd55d38121cb29e63bb394 100644 (file)
@@ -266,8 +266,16 @@ qemuBackupDiskPrepareDataOne(virDomainObjPtr vm,
     if (!qemuDomainDiskBlockJobIsSupported(vm, dd->domdisk))
         return -1;
 
-    if (!dd->store->format)
+    if (dd->store->format == VIR_STORAGE_FILE_NONE) {
         dd->store->format = VIR_STORAGE_FILE_QCOW2;
+    } else if (dd->store->format != VIR_STORAGE_FILE_QCOW2) {
+        if (pull) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("pull mode backup for disk '%s' requires qcow2 driver"),
+                           dd->backupdisk->name);
+            return -1;
+        }
+    }
 
     /* calculate backing store to use:
      * push mode: