Hi! The main feature here is improvement of _next_dirty_area API, which I'm going to use then for backup / block-copy.
v3: rebase on current master. Mirror don't use _next_dirty_area any more, so mirror chunks dropped (patches 05 and 07) and 07 commit message changed. 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 | 11 +- nbd/server.c | 242 +++++++++++++-------------- tests/test-hbitmap.c | 314 +++++++++++++---------------------- util/hbitmap.c | 133 +++++++++------ 7 files changed, 366 insertions(+), 456 deletions(-) -- 2.21.0
