Hi!
The main feature here is improvement of _next_dirty_area API, which I'm
going to use then for backup / block-copy.
Somehow, I thought that it was merged, but seems I even forgot to send
v4.
v4:
01-04: add Max's r-b
05: switch test_hbitmap_next_zero_check_range args to int64_t too
06: fix s/UINT64_MAX/INT64_MAX/ in comment to hbitmap_next_dirty
s/firt_dirty_off/first_dirty_off/
Context changed due to 05 change, but I keep Max's r-b
07: simplify parameter check in hbitmap_next_dirty_area
drop initialization in hbitmap_sparse_merge
add Max's r-b
08: commit message tweak
refactor converted flag to separated converted_to_be and can_add
do not convert to be automatically in nbd_extent_array_add
check uint32 overflow in nbd_extent_array_add
10: drop extra check from store_bitmap_data, add Max's r-b
Vladimir Sementsov-Ogievskiy (10):
hbitmap: assert that we don't create bitmap larger than INT64_MAX
hbitmap: move hbitmap_iter_next_word to hbitmap.c
hbitmap: unpublish hbitmap_iter_skip_words
hbitmap: drop meta bitmaps as they are unused
block/dirty-bitmap: switch _next_dirty_area and _next_zero to int64_t
block/dirty-bitmap: add _next_dirty API
block/dirty-bitmap: improve _next_dirty_area API
nbd/server: introduce NBDExtentArray
nbd/server: use bdrv_dirty_bitmap_next_dirty_area
block/qcow2-bitmap: use bdrv_dirty_bitmap_next_dirty
include/block/dirty-bitmap.h | 9 +-
include/qemu/hbitmap.h | 97 +++--------
block/dirty-bitmap.c | 16 +-
block/qcow2-bitmap.c | 15 +-
nbd/server.c | 251 ++++++++++++++--------------
tests/test-hbitmap.c | 314 +++++++++++++----------------------
util/hbitmap.c | 134 +++++++++------
7 files changed, 375 insertions(+), 461 deletions(-)