[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 17/20] qemu-io: Use bdrv_parse_cache_mode() in r
From: |
Max Reitz |
Subject: |
Re: [Qemu-devel] [PATCH 17/20] qemu-io: Use bdrv_parse_cache_mode() in reopen_f() |
Date: |
Sat, 26 Mar 2016 22:05:25 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0 |
On 18.03.2016 19:21, Kevin Wolf wrote:
> We must forbid changing the WCE flag in bdrv_reopen() in the same patch,
> as otherwise the behaviour would change so that the flag takes
> precedence over the explicitly specified option.
>
> The correct value of the WCE flag depends on the BlockBackend user (e.g.
> guest device) and isn't a decision that the QMP client makes, so this
> change is what we want.
>
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> block.c | 18 ++++++------------
> qemu-io-cmds.c | 14 +++++++++++++-
> tests/qemu-iotests/142 | 2 +-
> tests/qemu-iotests/142.out | 2 +-
> 4 files changed, 21 insertions(+), 15 deletions(-)
>
[...]
> diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c
> index e929d24..7de3754 100644
> --- a/qemu-io-cmds.c
> +++ b/qemu-io-cmds.c
[...]
> @@ -2136,14 +2137,25 @@ static int reopen_f(BlockBackend *blk, int argc, char
> **argv)
> return qemuio_command_usage(&reopen_cmd);
> }
>
> + if (writethrough != blk_enable_write_cache(blk) &&
> + blk_get_attached_dev(blk))
> + {
> + error_report("Cannot change cache.writeback: Device attached");
> + qemu_opts_reset(&reopen_opts);
> + return 0;
> + }
> +
> qopts = qemu_opts_find(&reopen_opts, NULL);
> opts = qopts ? qemu_opts_to_qdict(qopts, NULL) : NULL;
> qemu_opts_reset(&reopen_opts);
>
> + flags |= blk_enable_write_cache(blk) ? BDRV_O_CACHE_WB : 0;
Shouldn't this be bdrv_enable_write_cache(bs)?
With blk_enable_write_cache(blk), reopening a non-WB BB should always
fail because bdrv_reopen_multiple() accuses us of trying to change the
WB mode (whereas we really don't want to change the BDS's mode).
Max
> brq = bdrv_reopen_queue(NULL, bs, opts, flags);
> bdrv_reopen_multiple(brq, &local_err);
> if (local_err) {
> error_report_err(local_err);
> + } else {
> + blk_set_enable_write_cache(blk, !writethrough);
> }
>
> return 0;
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH 13/20] iscsi: Support BDRV_REQ_FUA, (continued)
- [Qemu-devel] [PATCH 11/20] block/qapi: Use blk_enable_write_cache(), Kevin Wolf, 2016/03/18
- [Qemu-devel] [PATCH 14/20] nbd: Support BDRV_REQ_FUA, Kevin Wolf, 2016/03/18
- [Qemu-devel] [PATCH 18/20] block: Remove bdrv_parse_cache_flags(), Kevin Wolf, 2016/03/18
- [Qemu-devel] [PATCH 17/20] qemu-io: Use bdrv_parse_cache_mode() in reopen_f(), Kevin Wolf, 2016/03/18
- Re: [Qemu-devel] [PATCH 17/20] qemu-io: Use bdrv_parse_cache_mode() in reopen_f(),
Max Reitz <=
- [Qemu-devel] [PATCH 20/20] block: Remove bdrv_(set_)enable_write_cache(), Kevin Wolf, 2016/03/18
- [Qemu-devel] [PATCH 19/20] block: Remove BDRV_O_CACHE_WB, Kevin Wolf, 2016/03/18