On 4/4/19 10:07 AM, Kevin Wolf wrote:
> When bdrv_temp_snapshot_options() is called for snapshot=on, the
> 'discard' option in the options QDict hasn't been parsed and merged into
> the flags yet. So copy the dict entry to make sure that the temporary
> overlay enables discard when it was requested for the drive.
> 
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> ---
>  block.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Reviewed-by: Eric Blake <ebl...@redhat.com>

> 
> diff --git a/block.c b/block.c
> index 3050854528..16615bc876 100644
> --- a/block.c
> +++ b/block.c
> @@ -950,8 +950,9 @@ static void bdrv_temp_snapshot_options(int *child_flags, 
> QDict *child_options,
>      qdict_set_default_str(child_options, BDRV_OPT_CACHE_DIRECT, "off");
>      qdict_set_default_str(child_options, BDRV_OPT_CACHE_NO_FLUSH, "on");
>  
> -    /* Copy the read-only option from the parent */
> +    /* Copy the read-only and discard options from the parent */
>      qdict_copy_default(child_options, parent_options, BDRV_OPT_READ_ONLY);
> +    qdict_copy_default(child_options, parent_options, BDRV_OPT_DISCARD);
>  
>      /* aio=native doesn't work for cache.direct=off, so disable it for the
>       * temporary snapshot */
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to