[libvirt] [PATCH] Only check for cluster fs if we're using a filesystem

Guido Günther agx at sigxcpu.org
Fri Jun 8 12:19:08 UTC 2012


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 |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index b58380b..a1fb962 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -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"
-- 
1.7.10




More information about the libvir-list mailing list