From 058384003db776c580d0e5a3016a6384e8eb7b92 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Tue, 8 Jul 2014 16:08:57 +0200 Subject: [PATCH] qemu: raise an eror when using aio=native without cache=none Qemu will fallback to aio=threads when the cache mode doesn't use O_DIRECT, even if aio=native was explictly set. Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1086704 Signed-off-by: Giuseppe Scrivano --- src/qemu/qemu_command.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f4c0b12c85..2185ef485c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3477,6 +3477,16 @@ qemuBuildDriveStr(virConnectPtr conn, mode = qemuDiskCacheV1TypeToString(disk->cachemode); } + if (disk->iomode == VIR_DOMAIN_DISK_IO_NATIVE && + disk->cachemode != VIR_DOMAIN_DISK_CACHE_DIRECTSYNC && + disk->cachemode != VIR_DOMAIN_DISK_CACHE_DISABLE) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("native I/O needs either no disk cache " + "or directsync cache mode, QEMU will fallback " + "to aio=threads")); + goto error; + } + virBufferAsprintf(&opt, ",cache=%s", mode); } else if (disk->src->shared && !disk->src->readonly) { virBufferAddLit(&opt, ",cache=off");