From: Jeff Cody <jcody@redhat.com>
To: Alberto Garcia <berto@igalia.com>
Cc: qemu-devel@nongnu.org, Kevin Wolf <kwolf@redhat.com>,
qemu-block@nongnu.org, Max Reitz <mreitz@redhat.com>
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH 2/7] block: Set BDRV_O_ALLOW_RDWR and snapshot_options before storing the flags
Date: Wed, 14 Sep 2016 14:54:19 -0400 [thread overview]
Message-ID: <20160914185419.GA24133@localhost.localdomain> (raw)
In-Reply-To: <5fd02facca962ec5c64ef45a43413d4c5571d42c.1473867966.git.berto@igalia.com>
On Wed, Sep 14, 2016 at 06:52:15PM +0300, Alberto Garcia wrote:
> If an image is opened with snapshot=on, its flags are modified by
> bdrv_backing_options() and then bs->open_flags is updated accordingly.
> This last step is unnecessary if we calculate the new flags before
> setting bs->open_flags.
>
> Soon we'll introduce the "read-only" option, and then we'll need to be
> able to modify its value in the QDict when snapshot=on. This is more
> cumbersome if bs->options is already set. This patch simplifies that.
>
> The code that sets BDRV_O_ALLOW_RDWR is also moved for the same
> reason.
>
Before, we would not set BDRV_O_ALLOW_RDWR for protocols, but this will
change that. Is that side-affect intentional?
> Signed-off-by: Alberto Garcia <berto@igalia.com>
> ---
> block.c | 23 +++++++++++------------
> 1 file changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/block.c b/block.c
> index 1c75a6f..7cae841 100644
> --- a/block.c
> +++ b/block.c
> @@ -1627,6 +1627,17 @@ static BlockDriverState *bdrv_open_inherit(const char *filename,
> goto fail;
> }
>
> + if (flags & BDRV_O_RDWR) {
> + flags |= BDRV_O_ALLOW_RDWR;
> + }
> +
> + if (flags & BDRV_O_SNAPSHOT) {
> + snapshot_options = qdict_new();
> + bdrv_temp_snapshot_options(&snapshot_flags, snapshot_options,
> + flags, options);
> + bdrv_backing_options(&flags, options, flags, options);
> + }
> +
> bs->open_flags = flags;
> bs->options = options;
> options = qdict_clone_shallow(options);
> @@ -1651,18 +1662,6 @@ static BlockDriverState *bdrv_open_inherit(const char *filename,
>
> /* Open image file without format layer */
> if ((flags & BDRV_O_PROTOCOL) == 0) {
> - if (flags & BDRV_O_RDWR) {
> - flags |= BDRV_O_ALLOW_RDWR;
> - }
> - if (flags & BDRV_O_SNAPSHOT) {
> - snapshot_options = qdict_new();
> - bdrv_temp_snapshot_options(&snapshot_flags, snapshot_options,
> - flags, options);
> - bdrv_backing_options(&flags, options, flags, options);
> - }
> -
> - bs->open_flags = flags;
> -
> file = bdrv_open_child(filename, options, "file", bs,
> &child_file, true, &local_err);
> if (local_err) {
next prev parent reply other threads:[~2016-09-14 18:54 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-14 15:52 [Qemu-devel] [PATCH 0/7] Add "read-only" to the options QDict Alberto Garcia
2016-09-14 15:52 ` [Qemu-devel] [PATCH 1/7] block: Remove bdrv_is_snapshot Alberto Garcia
2016-09-14 16:43 ` Kevin Wolf
2016-09-14 17:07 ` Eric Blake
2016-09-14 15:52 ` [Qemu-devel] [PATCH 2/7] block: Set BDRV_O_ALLOW_RDWR and snapshot_options before storing the flags Alberto Garcia
2016-09-14 16:40 ` Kevin Wolf
2016-09-15 11:24 ` Alberto Garcia
2016-09-15 12:19 ` Kevin Wolf
2016-09-15 12:31 ` Alberto Garcia
2016-09-15 12:50 ` Kevin Wolf
2016-09-15 12:55 ` Alberto Garcia
2016-09-14 18:54 ` Jeff Cody [this message]
2016-09-15 9:10 ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2016-09-14 15:52 ` [Qemu-devel] [PATCH 3/7] block: Update bs->open_flags earlier in bdrv_open_common() Alberto Garcia
2016-09-14 16:42 ` Kevin Wolf
2016-09-14 15:52 ` [Qemu-devel] [PATCH 4/7] block: Add "read-only" to the options QDict Alberto Garcia
2016-09-15 10:51 ` Kevin Wolf
2016-09-15 11:42 ` Alberto Garcia
2016-09-14 15:52 ` [Qemu-devel] [PATCH 5/7] block: Don't queue the same BDS twice in bdrv_reopen_queue_child() Alberto Garcia
2016-09-15 13:04 ` Kevin Wolf
2016-09-14 15:52 ` [Qemu-devel] [PATCH 6/7] commit: Add 'base' to the reopen queue before 'overlay_bs' Alberto Garcia
2016-09-15 13:06 ` Kevin Wolf
2016-09-14 15:52 ` [Qemu-devel] [PATCH 7/7] block: rename "read-only" to BDRV_OPT_READ_ONLY Alberto Garcia
2016-09-15 13:09 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160914185419.GA24133@localhost.localdomain \
--to=jcody@redhat.com \
--cc=berto@igalia.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.