[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v22 10/30] block/dirty-bitmap: add readonly fiel
From: |
Max Reitz |
Subject: |
Re: [Qemu-devel] [PATCH v22 10/30] block/dirty-bitmap: add readonly field to BdrvDirtyBitmap |
Date: |
Fri, 30 Jun 2017 03:21:21 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 |
On 2017-06-28 14:05, Vladimir Sementsov-Ogievskiy wrote:
> It will be needed in following commits for persistent bitmaps.
> If bitmap is loaded from read-only storage (and we can't mark it
> "in use" in this storage) corresponding BdrvDirtyBitmap should be
> read-only.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> ---
> block/dirty-bitmap.c | 36 ++++++++++++++++++++++++++++++++++++
> block/io.c | 8 ++++++++
> blockdev.c | 6 ++++++
> include/block/dirty-bitmap.h | 4 ++++
> 4 files changed, 54 insertions(+)
>
> diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c
> index a8fe149c4a..17d3068336 100644
> --- a/block/dirty-bitmap.c
> +++ b/block/dirty-bitmap.c
[...]
> @@ -635,3 +646,28 @@ int64_t bdrv_get_meta_dirty_count(BdrvDirtyBitmap
> *bitmap)
> {
> return hbitmap_count(bitmap->meta);
> }
> +
> +bool bdrv_dirty_bitmap_readonly(const BdrvDirtyBitmap *bitmap)
> +{
> + return bitmap->readonly;
> +}
> +
> +/* Called with BQL taken. */
> +void bdrv_dirty_bitmap_set_readonly(BdrvDirtyBitmap *bitmap, bool value)
> +{
> + qemu_mutex_lock(bitmap->mutex);
> + bitmap->readonly = value;
> + qemu_mutex_unlock(bitmap->mutex);
> +}
I find it a bit strange to acquire the mutex if this function is called
with the BQL taken (which I agree it should be) -- but Paolo has given
his OK and I don't think it does harm to acquire the mutex even under BQL.
Max
> +
> +bool bdrv_has_readonly_bitmaps(BlockDriverState *bs)
> +{
> + BdrvDirtyBitmap *bm;
> + QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) {
> + if (bm->readonly) {
> + return true;
> + }
> + }
> +
> + return false;
> +}
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH v22 27/30] block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap, (continued)
- [Qemu-devel] [PATCH v22 27/30] block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap, Vladimir Sementsov-Ogievskiy, 2017/06/28
- [Qemu-devel] [PATCH v22 28/30] qcow2: add .bdrv_remove_persistent_dirty_bitmap, Vladimir Sementsov-Ogievskiy, 2017/06/28
- [Qemu-devel] [PATCH v22 08/30] qcow2: add bitmaps extension, Vladimir Sementsov-Ogievskiy, 2017/06/28
- [Qemu-devel] [PATCH v22 06/30] block/dirty-bitmap: add deserialize_ones func, Vladimir Sementsov-Ogievskiy, 2017/06/28
- [Qemu-devel] [PATCH v22 03/30] hbitmap: improve dirty iter, Vladimir Sementsov-Ogievskiy, 2017/06/28
- [Qemu-devel] [PATCH v22 18/30] block/dirty-bitmap: add bdrv_dirty_bitmap_next(), Vladimir Sementsov-Ogievskiy, 2017/06/28
- [Qemu-devel] [PATCH v22 01/30] specs/qcow2: fix bitmap granularity qemu-specific note, Vladimir Sementsov-Ogievskiy, 2017/06/28
- [Qemu-devel] [PATCH v22 10/30] block/dirty-bitmap: add readonly field to BdrvDirtyBitmap, Vladimir Sementsov-Ogievskiy, 2017/06/28
- Re: [Qemu-devel] [PATCH v22 10/30] block/dirty-bitmap: add readonly field to BdrvDirtyBitmap,
Max Reitz <=
- Re: [Qemu-devel] [PATCH v22 00/30] qcow2: persistent dirty bitmaps, Paolo Bonzini, 2017/06/28
- Re: [Qemu-devel] [PATCH v22 00/30] qcow2: persistent dirty bitmaps, John Snow, 2017/06/29
- Re: [Qemu-devel] [PATCH v22 00/30] qcow2: persistent dirty bitmaps, Max Reitz, 2017/06/29