From: Giuseppe Scrivano Date: Mon, 30 Jun 2014 10:05:06 +0000 (+0200) Subject: qemu: raise an error when trying to use readonly ide disks X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=72f919f558902968bd0cf9f99f25ac62cbfe3ac6;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git qemu: raise an error when trying to use readonly ide disks The IDE bus doesn't support readonly disks, so inform the user with an error message instead of let qemu fail with a more obscure "Device 'ide-hd' could not be initialized" error message. Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1112939 Signed-off-by: Giuseppe Scrivano --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 63f322a41..48291760b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3385,8 +3385,15 @@ qemuBuildDriveStr(virConnectPtr conn, disk->bus != VIR_DOMAIN_DISK_BUS_IDE) virBufferAddLit(&opt, ",boot=on"); if (disk->readonly && - virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_READONLY)) + virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_READONLY)) { + if (disk->bus == VIR_DOMAIN_DISK_BUS_IDE && + disk->device == VIR_DOMAIN_DISK_DEVICE_DISK) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("readonly ide disks are not supported")); + goto error; + } virBufferAddLit(&opt, ",readonly=on"); + } if (disk->transient) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("transient disks not supported yet"));