|
|
9ae3a8 |
From b760a59d212007cbe0276d6027fb24809f1330d9 Mon Sep 17 00:00:00 2001
|
|
|
9ae3a8 |
From: Kevin Wolf <kwolf@redhat.com>
|
|
|
9ae3a8 |
Date: Tue, 5 Nov 2013 14:09:16 +0100
|
|
|
9ae3a8 |
Subject: [PATCH 63/87] blockdev: fix cdrom read_only flag
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
RH-Author: Kevin Wolf <kwolf@redhat.com>
|
|
|
9ae3a8 |
Message-id: <1383660558-32096-23-git-send-email-kwolf@redhat.com>
|
|
|
9ae3a8 |
Patchwork-id: 55401
|
|
|
9ae3a8 |
O-Subject: [RHEL-7.0 qemu-kvm PATCH 22/24] blockdev: fix cdrom read_only flag
|
|
|
9ae3a8 |
Bugzilla: 978402
|
|
|
9ae3a8 |
RH-Acked-by: Fam Zheng <famz@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Max Reitz <mreitz@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
From: Fam Zheng <famz@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Since 0ebd24e0, cdrom doesn't have read-only on by default, which will
|
|
|
9ae3a8 |
error out when using an read only image. Fix it by setting the default
|
|
|
9ae3a8 |
value when parsing opts.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Reported-by: Edivaldo de Araujo Pereira <edivaldoapereira@yahoo.com.br>
|
|
|
9ae3a8 |
Signed-off-by: Fam Zheng <famz@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
9ae3a8 |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
9ae3a8 |
(cherry picked from commit a7fdbcf0e6e52d935ebff6d849fe4b5473e5860d)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
blockdev.c | 7 ++++---
|
|
|
9ae3a8 |
1 file changed, 4 insertions(+), 3 deletions(-)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
blockdev.c | 7 ++++---
|
|
|
9ae3a8 |
1 files changed, 4 insertions(+), 3 deletions(-)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
diff --git a/blockdev.c b/blockdev.c
|
|
|
9ae3a8 |
index a248480..a9c5d32 100644
|
|
|
9ae3a8 |
--- a/blockdev.c
|
|
|
9ae3a8 |
+++ b/blockdev.c
|
|
|
9ae3a8 |
@@ -626,7 +626,8 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type)
|
|
|
9ae3a8 |
int cyls, heads, secs, translation;
|
|
|
9ae3a8 |
int max_devs, bus_id, unit_id, index;
|
|
|
9ae3a8 |
const char *devaddr;
|
|
|
9ae3a8 |
- bool read_only, copy_on_read;
|
|
|
9ae3a8 |
+ bool read_only = false;
|
|
|
9ae3a8 |
+ bool copy_on_read;
|
|
|
9ae3a8 |
Error *local_err = NULL;
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
/* Change legacy command line options into QMP ones */
|
|
|
9ae3a8 |
@@ -691,7 +692,7 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type)
|
|
|
9ae3a8 |
media = MEDIA_DISK;
|
|
|
9ae3a8 |
} else if (!strcmp(value, "cdrom")) {
|
|
|
9ae3a8 |
media = MEDIA_CDROM;
|
|
|
9ae3a8 |
- qdict_put(bs_opts, "read-only", qstring_from_str("on"));
|
|
|
9ae3a8 |
+ read_only = true;
|
|
|
9ae3a8 |
} else {
|
|
|
9ae3a8 |
error_report("'%s' invalid media", value);
|
|
|
9ae3a8 |
goto fail;
|
|
|
9ae3a8 |
@@ -699,7 +700,7 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type)
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
/* copy-on-read is disabled with a warning for read-only devices */
|
|
|
9ae3a8 |
- read_only = qemu_opt_get_bool(legacy_opts, "read-only", false);
|
|
|
9ae3a8 |
+ read_only |= qemu_opt_get_bool(legacy_opts, "read-only", false);
|
|
|
9ae3a8 |
copy_on_read = qemu_opt_get_bool(legacy_opts, "copy-on-read", false);
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
if (read_only && copy_on_read) {
|
|
|
9ae3a8 |
--
|
|
|
9ae3a8 |
1.7.1
|
|
|
9ae3a8 |
|