[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH 22/25] block/dirty-bitmap: add bdrv
From: |
John Snow |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH 22/25] block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap |
Date: |
Tue, 14 Feb 2017 18:43:30 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
On 02/14/2017 11:59 AM, Vladimir Sementsov-Ogievskiy wrote:
> Interface for removing persistent bitmap from its storage.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> Reviewed-by: Max Reitz <address@hidden>
> ---
> block/dirty-bitmap.c | 18 ++++++++++++++++++
> include/block/block_int.h | 3 +++
> include/block/dirty-bitmap.h | 3 +++
> 3 files changed, 24 insertions(+)
>
> diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c
> index b684d8b..05e0aae 100644
> --- a/block/dirty-bitmap.c
> +++ b/block/dirty-bitmap.c
> @@ -327,12 +327,30 @@ void bdrv_release_dirty_bitmap(BlockDriverState *bs,
> BdrvDirtyBitmap *bitmap)
> /**
> * Release all named dirty bitmaps attached to a BDS (for use in
> bdrv_close()).
> * There must not be any frozen bitmaps attached.
> + * This function does not remove persistent bitmaps from the storage.
> */
> void bdrv_release_named_dirty_bitmaps(BlockDriverState *bs)
> {
> bdrv_do_release_matching_dirty_bitmap(bs, NULL, true);
> }
>
> +/**
> + * Remove persistent dirty bitmap from the storage if it exists.
> + * Absence of bitmap is not an error, because we have the following scenario:
> + * BdrvDirtyBitmap can have .persistent = true but not yet saved and have no
> + * stored version. For such bitmap bdrv_remove_persistent_dirty_bitmap()
> should
> + * not fail.
> + * This function doesn't release corresponding BdrvDirtyBitmap.
> + */
> +void bdrv_remove_persistent_dirty_bitmap(BlockDriverState *bs,
> + const char *name,
> + Error **errp)
> +{
> + if (bs->drv && bs->drv->bdrv_remove_persistent_dirty_bitmap) {
> + bs->drv->bdrv_remove_persistent_dirty_bitmap(bs, name, errp);
> + }
> +}
> +
> void bdrv_disable_dirty_bitmap(BdrvDirtyBitmap *bitmap)
> {
> assert(!bdrv_dirty_bitmap_frozen(bitmap));
> diff --git a/include/block/block_int.h b/include/block/block_int.h
> index db68067..d138555 100644
> --- a/include/block/block_int.h
> +++ b/include/block/block_int.h
> @@ -328,6 +328,9 @@ struct BlockDriver {
> const char *name,
> uint32_t granularity,
> Error **errp);
> + void (*bdrv_remove_persistent_dirty_bitmap)(BlockDriverState *bs,
> + const char *name,
> + Error **errp);
>
> QLIST_ENTRY(BlockDriver) list;
> };
> diff --git a/include/block/dirty-bitmap.h b/include/block/dirty-bitmap.h
> index b022b34..ce12610 100644
> --- a/include/block/dirty-bitmap.h
> +++ b/include/block/dirty-bitmap.h
> @@ -25,6 +25,9 @@ BdrvDirtyBitmap *bdrv_find_dirty_bitmap(BlockDriverState
> *bs,
> void bdrv_dirty_bitmap_make_anon(BdrvDirtyBitmap *bitmap);
> void bdrv_release_dirty_bitmap(BlockDriverState *bs, BdrvDirtyBitmap
> *bitmap);
> void bdrv_release_named_dirty_bitmaps(BlockDriverState *bs);
> +void bdrv_remove_persistent_dirty_bitmap(BlockDriverState *bs,
> + const char *name,
> + Error **errp);
> void bdrv_disable_dirty_bitmap(BdrvDirtyBitmap *bitmap);
> void bdrv_enable_dirty_bitmap(BdrvDirtyBitmap *bitmap);
> BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs);
>
Reviewed-by: John Snow <address@hidden>
- [Qemu-block] [PATCH v14 00/24] qcow2: persistent dirty bitmaps, Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 05/25] block: fix bdrv_dirty_bitmap_granularity signature, Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 16/25] qmp: add persistent flag to block-dirty-bitmap-add, Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 12/25] block/dirty-bitmap: add bdrv_dirty_bitmap_next(), Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 22/25] block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap, Vladimir Sementsov-Ogievskiy, 2017/02/14
- Re: [Qemu-block] [Qemu-devel] [PATCH 22/25] block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap,
John Snow <=
- [Qemu-block] [PATCH 18/25] qmp: add x-debug-block-dirty-bitmap-sha256, Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 06/25] block/dirty-bitmap: add deserialize_ones func, Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 25/25] qcow2-bitmap: improve check_constraints_on_bitmap, Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 24/25] qmp: block-dirty-bitmap-remove: remove persistent, Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 04/25] tests: add hbitmap iter test, Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 02/25] specs/qcow2: do not use wording 'bitmap header', Vladimir Sementsov-Ogievskiy, 2017/02/14
- [Qemu-block] [PATCH 21/25] qcow2-bitmap: refcounts, Vladimir Sementsov-Ogievskiy, 2017/02/14