]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Only check for cluster fs if we're using a filesystem
authorGuido Günther <agx@sigxcpu.org>
Wed, 6 Jun 2012 18:36:31 +0000 (20:36 +0200)
committerGuido Günther <agx@sigxcpu.org>
Fri, 8 Jun 2012 17:54:11 +0000 (19:54 +0200)
otherwise migration fails for e.g. network filesystems like sheepdog
with:

   error: Invalid relative path 'virt-name': Invalid argument

while we should fail with:

    Migration may lead to data corruption if disks use cache != none

References:

    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676328
    https://www.redhat.com/archives/libvirt-users/2012-May/msg00088.html

src/qemu/qemu_migration.c

index b58380b7307d18bd69c5a9e7c2d261fd761565b6..a1fb962cbd0316b59a01f79101b6b688d2378fa9 100644 (file)
@@ -840,10 +840,13 @@ qemuMigrationIsSafe(virDomainDefPtr def)
             !disk->readonly &&
             disk->cachemode != VIR_DOMAIN_DISK_CACHE_DISABLE) {
             int cfs;
-            if ((cfs = virStorageFileIsClusterFS(disk->src)) == 1)
-                continue;
-            else if (cfs < 0)
-                return false;
+
+            if (disk->type == VIR_DOMAIN_DISK_TYPE_FILE) {
+                if ((cfs = virStorageFileIsClusterFS(disk->src)) == 1)
+                    continue;
+                else if (cfs < 0)
+                    return false;
+            }
 
             qemuReportError(VIR_ERR_MIGRATE_UNSAFE, "%s",
                             _("Migration may lead to data corruption if disks"