[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-stable] [PATCH 2/3] nbd/client: Make x-dirty-bitmap more relia
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
Re: [Qemu-stable] [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