]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: shared disks with cache=directsync should be safe for migration
authorHao Peng <peng.hao2@zte.com.cn>
Sat, 15 Jul 2017 15:01:25 +0000 (23:01 +0800)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 20 Jul 2017 09:17:18 +0000 (10:17 +0100)
At present shared disks can be migrated with either readonly or cache=none. But
cache=directsync should be safe for migration, because both cache=directsync and cache=none
don't use the host page cache, and cache=direct write through qemu block layer cache.

Signed-off-by: Peng Hao <peng.hao2@zte.com.cn>
Reviewed-by: Wang Yechao <wang.yechao255@zte.com.cn>
src/qemu/qemu_migration.c

index dc562633307eb8187bf244eeb194d2b14ad728a7..056c051b3e786f154ce1d11b3dc085bb6cb0d5e1 100644 (file)
@@ -1160,11 +1160,12 @@ qemuMigrationIsSafe(virDomainDefPtr def,
         const char *src = virDomainDiskGetSource(disk);
 
         /* Our code elsewhere guarantees shared disks are either readonly (in
-         * which case cache mode doesn't matter) or used with cache=none */
+         * which case cache mode doesn't matter) or used with cache=none or used with cache=directsync */
         if (virStorageSourceIsEmpty(disk->src) ||
             disk->src->readonly ||
             disk->src->shared ||
-            disk->cachemode == VIR_DOMAIN_DISK_CACHE_DISABLE)
+            disk->cachemode == VIR_DOMAIN_DISK_CACHE_DISABLE ||
+            disk->cachemode == VIR_DOMAIN_DISK_CACHE_DIRECTSYNC)
             continue;
 
         /* disks which are migrated by qemu are safe too */
@@ -1188,7 +1189,7 @@ qemuMigrationIsSafe(virDomainDefPtr def,
 
         virReportError(VIR_ERR_MIGRATE_UNSAFE, "%s",
                        _("Migration may lead to data corruption if disks"
-                         " use cache != none"));
+                         " use cache != none or cache != directsync"));
         return false;
     }