qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/3] nbd/client: Make x-dirty-bitmap more reliab


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [Qemu-devel] [PATCH 2/3] nbd/client: Make x-dirty-bitmap more reliable
Date: Fri, 30 Nov 2018 08:21:46 +0000

30.11.2018 5:32, Eric Blake wrote:
> The implementation of x-dirty-bitmap in qemu 3.0 silently
> falls back to treating the server as not supporting
> NBD_CMD_BLOCK_STATUS if a requested meta_context name was not
> negotiated, which in turn means treating the _entire_ image as
> data. Since our hack relied on using 'qemu-img map' to view
> which portions of the image were dirty by seeing what the
> redirected bdrv_block_status() treats as holes, this means
> that our fallback treats the entire image as clean.  Better
> would have been to treat the entire image as dirty, or to fail
> to connect because the user's request for a specific context
> could not be honored. This patch goes with the latter.
> 
> Signed-off-by: Eric Blake <address@hidden>


Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>

> ---
>   block/nbd-client.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/block/nbd-client.c b/block/nbd-client.c
> index 76e9ca3abeb..e6e27dafa6a 100644
> --- a/block/nbd-client.c
> +++ b/block/nbd-client.c
> @@ -992,6 +992,11 @@ int nbd_client_init(BlockDriverState *bs,
>           logout("Failed to negotiate with the NBD server\n");
>           return ret;
>       }
> +    if (x_dirty_bitmap && !client->info.base_allocation) {
> +        error_setg(errp, "requested x-dirty-bitmap %s not found",
> +                   x_dirty_bitmap);
> +        return -EINVAL;
> +    }
>       if (client->info.flags & NBD_FLAG_READ_ONLY) {
>           ret = bdrv_apply_auto_read_only(bs, "NBD export is read-only", 
> errp);
>           if (ret < 0) {
> 


-- 
Best regards,
Vladimir

reply via email to

[Prev in Thread] Current Thread [Next in Thread]