From 01455fe87bea8b2ba5b268b32b6b3eee0f40e679 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 24 Apr 2018 17:12:19 +0200 Subject: [PATCH] qemu: block: Properly handle block storage in JSON generator Block storage should actually be passed to qemu via 'host_device' or 'host_cdrom' according to the device type. There were no users of this behaviour so we thankfully can change it. Signed-off-by: Peter Krempa Reviewed-by: John Ferlan --- src/qemu/qemu_block.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 9098399cf2..b77dfaea72 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -977,14 +977,22 @@ qemuBlockStorageSourceGetSshProps(virStorageSourcePtr src) static virJSONValuePtr qemuBlockStorageSourceGetFileProps(virStorageSourcePtr src) { + const char *driver = "file"; const char *iomode = NULL; virJSONValuePtr ret = NULL; if (src->iomode != VIR_DOMAIN_DISK_IO_DEFAULT) iomode = virDomainDiskIoTypeToString(src->iomode); + if (virStorageSourceIsBlockLocal(src)) { + if (src->hostcdrom) + driver = "host_cdrom"; + else + driver = "host_device"; + } + ignore_value(virJSONValueObjectCreate(&ret, - "s:driver", "file", + "s:driver", driver, "s:filename", src->path, "S:aio", iomode, NULL) < 0);