]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: snapshot: Don't default-snapshot empty drives
authorPeter Krempa <pkrempa@redhat.com>
Thu, 11 Sep 2014 15:45:06 +0000 (17:45 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 12 Sep 2014 07:37:37 +0000 (09:37 +0200)
If a (floppy) drive isn't selected for snapshot explicitly and is empty
don't try to snapshot it. For external snapshots this would fail as we
can't generate a name for the snapshot from an empty drive.

Reported-by: Pavel Hrdina <phrdina@redhat.com>
src/conf/snapshot_conf.c

index c53a66b65cfcfbdbbee36238bd4cf932febc1126..1f83b2c2a6aa590b5e60d0116f6f50081da6d388 100644 (file)
@@ -561,7 +561,13 @@ virDomainSnapshotAlignDisks(virDomainSnapshotDefPtr def,
         if (VIR_STRDUP(disk->name, def->dom->disks[i]->dst) < 0)
             goto cleanup;
         disk->index = i;
-        disk->snapshot = def->dom->disks[i]->snapshot;
+
+        /* Don't snapshot empty drives */
+        if (virStorageSourceIsEmpty(def->dom->disks[i]->src))
+            disk->snapshot = VIR_DOMAIN_SNAPSHOT_LOCATION_NONE;
+        else
+            disk->snapshot = def->dom->disks[i]->snapshot;
+
         disk->src->type = VIR_STORAGE_TYPE_FILE;
         if (!disk->snapshot)
             disk->snapshot = default_snapshot;