qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

block/dirty-bitmap: add bdrv_has_named_bitmaps helper

To be used for bitmap migration in further commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200521220648.3255-3-vsementsov@virtuozzo.com>
Signed-off-by: Eric Blake <eblake@redhat.com>

authored by

Vladimir Sementsov-Ogievskiy and committed by
Eric Blake
7ae89a0d 38908bbc

+14
+13
block/dirty-bitmap.c
··· 818 818 return false; 819 819 } 820 820 821 + bool bdrv_has_named_bitmaps(BlockDriverState *bs) 822 + { 823 + BdrvDirtyBitmap *bm; 824 + 825 + QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) { 826 + if (bdrv_dirty_bitmap_name(bm)) { 827 + return true; 828 + } 829 + } 830 + 831 + return false; 832 + } 833 + 821 834 /* Called with BQL taken. */ 822 835 void bdrv_dirty_bitmap_set_persistence(BdrvDirtyBitmap *bitmap, bool persistent) 823 836 {
+1
include/block/dirty-bitmap.h
··· 95 95 void bdrv_dirty_bitmap_truncate(BlockDriverState *bs, int64_t bytes); 96 96 bool bdrv_dirty_bitmap_readonly(const BdrvDirtyBitmap *bitmap); 97 97 bool bdrv_has_readonly_bitmaps(BlockDriverState *bs); 98 + bool bdrv_has_named_bitmaps(BlockDriverState *bs); 98 99 bool bdrv_dirty_bitmap_get_autoload(const BdrvDirtyBitmap *bitmap); 99 100 bool bdrv_dirty_bitmap_get_persistence(BdrvDirtyBitmap *bitmap); 100 101 bool bdrv_dirty_bitmap_inconsistent(const BdrvDirtyBitmap *bitmap);