From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37988) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vda5L-0003i7-0m for qemu-devel@nongnu.org; Tue, 05 Nov 2013 01:26:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vda5F-0006E1-1b for qemu-devel@nongnu.org; Tue, 05 Nov 2013 01:25:54 -0500 Message-ID: <52788F68.5090307@redhat.com> Date: Tue, 05 Nov 2013 14:25:44 +0800 From: Fam Zheng MIME-Version: 1.0 References: <1381830350-7240-1-git-send-email-famz@redhat.com> In-Reply-To: <1381830350-7240-1-git-send-email-famz@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] blockdev: fix cdrom read_only flag List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org Cc'ing qemu-stable. Fam On 10/15/2013 05:45 PM, Fam Zheng wrote: > Since 0ebd24e0, cdrom doesn't have read-only on by default, which will > error out when using an read only image. Fix it by setting the default > value when parsing opts. > > Reported-by: Edivaldo de Araujo Pereira > Signed-off-by: Fam Zheng > > --- > v2: fix backward compatibility by force read-only with cdrom. (Kevin) > > Signed-off-by: Fam Zheng > --- > blockdev.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/blockdev.c b/blockdev.c > index 4f76e28..b260477 100644 > --- a/blockdev.c > +++ b/blockdev.c > @@ -625,7 +625,8 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type) > int cyls, heads, secs, translation; > int max_devs, bus_id, unit_id, index; > const char *devaddr; > - bool read_only, copy_on_read; > + bool read_only = false; > + bool copy_on_read; > Error *local_err = NULL; > > /* Change legacy command line options into QMP ones */ > @@ -701,7 +702,7 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type) > media = MEDIA_DISK; > } else if (!strcmp(value, "cdrom")) { > media = MEDIA_CDROM; > - qdict_put(bs_opts, "read-only", qstring_from_str("on")); > + read_only = true; > } else { > error_report("'%s' invalid media", value); > goto fail; > @@ -709,7 +710,7 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type) > } > > /* copy-on-read is disabled with a warning for read-only devices */ > - read_only = qemu_opt_get_bool(legacy_opts, "read-only", false); > + read_only |= qemu_opt_get_bool(legacy_opts, "read-only", false); > copy_on_read = qemu_opt_get_bool(legacy_opts, "copy-on-read", false); > > if (read_only && copy_on_read) {