From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57207) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YMOQ8-0003f0-4W for qemu-devel@nongnu.org; Fri, 13 Feb 2015 17:09:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YMOQ6-00048f-Gc for qemu-devel@nongnu.org; Fri, 13 Feb 2015 17:09:08 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34229) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YMOQ6-00048X-7q for qemu-devel@nongnu.org; Fri, 13 Feb 2015 17:09:06 -0500 From: John Snow Date: Fri, 13 Feb 2015 17:08:45 -0500 Message-Id: <1423865338-8576-5-git-send-email-jsnow@redhat.com> In-Reply-To: <1423865338-8576-1-git-send-email-jsnow@redhat.com> References: <1423865338-8576-1-git-send-email-jsnow@redhat.com> Subject: [Qemu-devel] [PATCH v13 04/17] block: Introduce bdrv_dirty_bitmap_granularity() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, famz@redhat.com, John Snow , armbru@redhat.com, mreitz@redhat.com, vsementsov@parallels.com, stefanha@redhat.com This returns the granularity (in bytes) of dirty bitmap, which matches the QMP interface and the existing query interface. Small adjustments are made to ensure that granularity (in bytes) is handled consistently as a uint32_t throughout the code. Signed-off-by: John Snow --- block.c | 8 ++++++-- include/block/block.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/block.c b/block.c index 60dbdbd..8b40e38 100644 --- a/block.c +++ b/block.c @@ -5440,8 +5440,7 @@ BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs) BlockDirtyInfo *info = g_new0(BlockDirtyInfo, 1); BlockDirtyInfoList *entry = g_new0(BlockDirtyInfoList, 1); info->count = bdrv_get_dirty_count(bs, bm); - info->granularity = - ((uint32_t) BDRV_SECTOR_SIZE << hbitmap_granularity(bm->bitmap)); + info->granularity = bdrv_dirty_bitmap_granularity(bm); info->has_name = !!bm->name; info->name = g_strdup(bm->name); entry->value = info; @@ -5481,6 +5480,11 @@ uint32_t bdrv_get_default_bitmap_granularity(BlockDriverState *bs) return granularity; } +uint32_t bdrv_dirty_bitmap_granularity(BdrvDirtyBitmap *bitmap) +{ + return BDRV_SECTOR_SIZE << hbitmap_granularity(bitmap->bitmap); +} + void bdrv_dirty_iter_init(BlockDriverState *bs, BdrvDirtyBitmap *bitmap, HBitmapIter *hbi) { diff --git a/include/block/block.h b/include/block/block.h index 3589132..41b8418 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -448,6 +448,7 @@ void bdrv_dirty_bitmap_make_anon(BlockDriverState *bs, BdrvDirtyBitmap *bitmap); void bdrv_release_dirty_bitmap(BlockDriverState *bs, BdrvDirtyBitmap *bitmap); BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs); uint32_t bdrv_get_default_bitmap_granularity(BlockDriverState *bs); +uint32_t bdrv_dirty_bitmap_granularity(BdrvDirtyBitmap *bitmap); int bdrv_get_dirty(BlockDriverState *bs, BdrvDirtyBitmap *bitmap, int64_t sector); void bdrv_set_dirty_bitmap(BlockDriverState *bs, BdrvDirtyBitmap *bitmap, int64_t cur_sector, int nr_sectors); -- 1.9.3