qmp: block-dirty-bitmap-remove: remove persistent
Remove persistent bitmap from the storage on block-dirty-bitmap-remove. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-id: 20170628120530.31251-30-vsementsov@virtuozzo.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
469c71edc7
commit
5c36c1af27
10
blockdev.c
10
blockdev.c
|
@ -2771,6 +2771,7 @@ void qmp_block_dirty_bitmap_remove(const char *node, const char *name,
|
||||||
{
|
{
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
BdrvDirtyBitmap *bitmap;
|
BdrvDirtyBitmap *bitmap;
|
||||||
|
Error *local_err = NULL;
|
||||||
|
|
||||||
bitmap = block_dirty_bitmap_lookup(node, name, &bs, errp);
|
bitmap = block_dirty_bitmap_lookup(node, name, &bs, errp);
|
||||||
if (!bitmap || !bs) {
|
if (!bitmap || !bs) {
|
||||||
|
@ -2783,6 +2784,15 @@ void qmp_block_dirty_bitmap_remove(const char *node, const char *name,
|
||||||
name);
|
name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (bdrv_dirty_bitmap_get_persistance(bitmap)) {
|
||||||
|
bdrv_remove_persistent_dirty_bitmap(bs, name, &local_err);
|
||||||
|
if (local_err != NULL) {
|
||||||
|
error_propagate(errp, local_err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bdrv_dirty_bitmap_make_anon(bitmap);
|
bdrv_dirty_bitmap_make_anon(bitmap);
|
||||||
bdrv_release_dirty_bitmap(bs, bitmap);
|
bdrv_release_dirty_bitmap(bs, bitmap);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1593,7 +1593,8 @@
|
||||||
# @block-dirty-bitmap-remove:
|
# @block-dirty-bitmap-remove:
|
||||||
#
|
#
|
||||||
# Stop write tracking and remove the dirty bitmap that was created
|
# Stop write tracking and remove the dirty bitmap that was created
|
||||||
# with block-dirty-bitmap-add.
|
# with block-dirty-bitmap-add. If the bitmap is persistent, remove it from its
|
||||||
|
# storage too.
|
||||||
#
|
#
|
||||||
# Returns: nothing on success
|
# Returns: nothing on success
|
||||||
# If @node is not a valid block device or node, DeviceNotFound
|
# If @node is not a valid block device or node, DeviceNotFound
|
||||||
|
|
Loading…
Reference in New Issue