summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorVladimir Sementsov-Ogievskiy2019-01-16 00:26:49 +0100
committerJohn Snow2019-01-16 00:26:49 +0100
commit76d570dc495c56bbdcc4574bfc6d512dcb8e9aa9 (patch)
tree80b114f05c7c9f30dcd1655cfa50c1f1330572d2 /block
parentMerge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into ... (diff)
downloadqemu-76d570dc495c56bbdcc4574bfc6d512dcb8e9aa9.tar.gz
qemu-76d570dc495c56bbdcc4574bfc6d512dcb8e9aa9.tar.xz
qemu-76d570dc495c56bbdcc4574bfc6d512dcb8e9aa9.zip
dirty-bitmap: improve bdrv_dirty_bitmap_next_zero
Add bytes parameter to the function, to limit searched range. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Diffstat (limited to 'block')
-rw-r--r--block/backup.c3
-rw-r--r--block/dirty-bitmap.c5
2 files changed, 5 insertions, 3 deletions
diff --git a/block/backup.c b/block/backup.c
index b829b251eb..9ffce5c183 100644
--- a/block/backup.c
+++ b/block/backup.c
@@ -422,7 +422,8 @@ static void backup_incremental_init_copy_bitmap(BackupBlockJob *job)
break;
}
- offset = bdrv_dirty_bitmap_next_zero(job->sync_bitmap, offset);
+ offset = bdrv_dirty_bitmap_next_zero(job->sync_bitmap, offset,
+ UINT64_MAX);
if (offset == -1) {
hbitmap_set(job->copy_bitmap, cluster, end - cluster);
break;
diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c
index 6b688394e4..b162f4ac22 100644
--- a/block/dirty-bitmap.c
+++ b/block/dirty-bitmap.c
@@ -781,9 +781,10 @@ char *bdrv_dirty_bitmap_sha256(const BdrvDirtyBitmap *bitmap, Error **errp)
return hbitmap_sha256(bitmap->bitmap, errp);
}
-int64_t bdrv_dirty_bitmap_next_zero(BdrvDirtyBitmap *bitmap, uint64_t offset)
+int64_t bdrv_dirty_bitmap_next_zero(BdrvDirtyBitmap *bitmap, uint64_t offset,
+ uint64_t bytes)
{
- return hbitmap_next_zero(bitmap->bitmap, offset);
+ return hbitmap_next_zero(bitmap->bitmap, offset, bytes);
}
void bdrv_merge_dirty_bitmap(BdrvDirtyBitmap *dest, const BdrvDirtyBitmap *src,