]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Assume migration with a network disk migration is safe
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 24 Jan 2019 08:58:38 +0000 (09:58 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 4 Feb 2019 13:03:42 +0000 (14:03 +0100)
If a domain has a disk that is type='network' we require specific
cache mode to allow migration with it (either 'directsync' or
'none'). This doesn't make much sense since network disks are
supposed to be safe to migrate by default.

At the same time, we should be checking for the actual source
type, not apparent type set in the domain XML.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/qemu/qemu_migration.c

index 52aa6656404a4d712822b2ba9b9b7ff21f0fb825..1433b2c2f39245e5027cdc85c0739a91e89dca1c 100644 (file)
@@ -1236,7 +1236,7 @@ qemuMigrationSrcIsSafe(virDomainDefPtr def,
             continue;
 
         /* However, disks on local FS (e.g. ext4) are not safe. */
-        if (virDomainDiskGetType(disk) == VIR_STORAGE_TYPE_FILE) {
+        if (virStorageSourceGetActualType(disk->src) == VIR_STORAGE_TYPE_FILE) {
             if ((rc = virFileIsSharedFS(src)) < 0) {
                 return false;
             } else if (rc == 0) {
@@ -1248,8 +1248,8 @@ qemuMigrationSrcIsSafe(virDomainDefPtr def,
                 return false;
             else if (rc == 1)
                 continue;
-        } else if (disk->src->type == VIR_STORAGE_TYPE_NETWORK &&
-                   disk->src->protocol == VIR_STORAGE_NET_PROTOCOL_RBD) {
+        } else if (virStorageSourceGetActualType(disk->src) == VIR_STORAGE_TYPE_NETWORK) {
+            /* But network disks are safe again. */
             continue;
         }