From fed9cc85eaff6f75e3d232e350d78a53f314815f Mon Sep 17 00:00:00 2001 From: Hao Peng Date: Sat, 15 Jul 2017 23:01:25 +0800 Subject: [PATCH] qemu: shared disks with cache=directsync should be safe for migration 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 Reviewed-by: Wang Yechao --- src/qemu/qemu_migration.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index dc56263330..056c051b3e 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -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; }