From 7fcf943bcd8355048e7e8e8c17dd741a94777852 Mon Sep 17 00:00:00 2001 From: Osier Yang Date: Wed, 14 Mar 2012 23:26:49 +0800 Subject: [PATCH] qemu: Prohibit setting tray status as open for block type disk --- src/qemu/qemu_command.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index ed390c17d5..b9ff143f53 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1963,6 +1963,13 @@ qemuBuildDriveStr(virConnectPtr conn ATTRIBUTE_UNUSED, break; } } else { + if ((disk->type == VIR_DOMAIN_DISK_TYPE_BLOCK) && + (disk->tray_status == VIR_DOMAIN_DISK_TRAY_OPEN)) { + qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("tray status 'open' is invalid for " + "block type disk")); + goto error; + } virBufferEscape(&opt, ',', ",", "file=%s,", disk->src); } } @@ -4641,6 +4648,14 @@ qemuBuildCommandLine(virConnectPtr conn, const char *fmt; virDomainDiskDefPtr disk = def->disks[i]; + if ((disk->type == VIR_DOMAIN_DISK_TYPE_BLOCK) && + (disk->tray_status == VIR_DOMAIN_DISK_TRAY_OPEN)) { + qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("tray status 'open' is invalid for " + "block type disk")); + goto error; + } + if (disk->bus == VIR_DOMAIN_DISK_BUS_USB) { if (disk->device == VIR_DOMAIN_DISK_DEVICE_DISK) { virCommandAddArg(cmd, "-usbdevice"); -- 2.39.5