On 2018-08-26 16:09, Alberto Garcia wrote:
> "qemu-io reopen" doesn't allow changing the writethrough setting of
> the cache, but the check is wrong, causing an error even on a simple
> reopen with the default parameters:
>
> $ qemu-img create -f qcow2 hd.qcow2 1M
> $ qemu-system-x86_64 -monitor stdio -drive if=virtio,file=hd.qcow2
> (qemu) qemu-io virtio0 reopen
> Cannot change cache.writeback: Device attached
>
> Signed-off-by: Alberto Garcia <berto@igalia.com>
> ---
> qemu-io-cmds.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c
> index 5bf5f28178..db0b3ee5ef 100644
> --- a/qemu-io-cmds.c
> +++ b/qemu-io-cmds.c
> @@ -2025,7 +2025,7 @@ static int reopen_f(BlockBackend *blk, int argc, char **argv)
> return -EINVAL;
> }
>
> - if (writethrough != blk_enable_write_cache(blk) &&
> + if (!writethrough != blk_enable_write_cache(blk) &&
I'd prefer the ! before the blk_enable_write_cache(), because that's how
the initial assignment of writethrough looks, but nobody really cares, so:
Reviewed-by: Max Reitz <mreitz@redhat.com>
> blk_get_attached_dev(blk))
> {
> error_report("Cannot change cache.writeback: Device attached");
>