aboutsummaryrefslogtreecommitdiff
path: root/hw/ide
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2010-06-28 19:10:36 +0200
committerKevin Wolf <kwolf@redhat.com>2010-07-06 17:05:50 +0200
commit7aa9c811ca0761918a0252d0f923a80224953fa6 (patch)
treeddc1ba5ca17f9f9f9ff63c493dce0e295762c3b7 /hw/ide
parentc4d74df726cb3791d9f1661b58067df5608b627e (diff)
ide: Reject readonly drives unless CD-ROM
drive_init() doesn't permit option readonly for if=ide, but that's worthless: we get it via if=none and -device. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/ide')
-rw-r--r--hw/ide/core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/ide/core.c b/hw/ide/core.c
index dbb7accca0..3b84bea5cf 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -2617,6 +2617,11 @@ int ide_init_drive(IDEState *s, BlockDriverState *bs,
if (bdrv_get_type_hint(bs) == BDRV_TYPE_CDROM) {
s->drive_kind = IDE_CD;
bdrv_set_change_cb(bs, cdrom_change_cb, s);
+ } else {
+ if (bdrv_is_read_only(bs)) {
+ error_report("Can't use a read-only drive");
+ return -1;
+ }
}
if (serial) {
strncpy(s->drive_serial_str, serial, sizeof(s->drive_serial_str));