Hi all! That's an untested draft. I'll be on vocation 05-22, so no reason for this just lay in my hard drive. Any comments are welcome (mostly about general design), but don't waste time on careful reviewing.
What this series brings to image-fleecing: 1. support for bitmap (patch 04). So, we can do incremental external backups and not do extra copy-before-write operations for non-dirty regions. 2. fleecing block driver - see lat patch for details and list of benefits. Based-on: <[email protected]> ([PATCH v7 00/33] block: publish backup-top filter) Vladimir Sementsov-Ogievskiy (11): block/block-copy: move copy_bitmap initialization to block_copy_state_new() block/dirty-bitmap: bdrv_merge_dirty_bitmap(): add return value block/block-copy: block_copy_state_new(): add bitmap parameter block/copy-before-write: add bitmap open parameter block/block-copy: add block_copy_reset() block: intoduce reqlist block/dirty-bitmap: introduce bdrv_dirty_bitmap_status() block/reqlist: add reqlist_wait_all() block/copy-before-write: add cbw_snapshot_read_{lock,unlock}() block/copy-before-write: add cbw_snapshot_discard() block: introduce fleecing block driver qapi/block-core.json | 10 +- block/copy-before-write.h | 6 ++ include/block/block-copy.h | 3 +- include/block/dirty-bitmap.h | 4 +- include/block/reqlist.h | 47 ++++++++ include/qemu/hbitmap.h | 11 ++ block/block-copy.c | 152 +++++++++++--------------- block/copy-before-write.c | 143 ++++++++++++++++++++++++- block/dirty-bitmap.c | 14 ++- block/fleecing.c | 183 ++++++++++++++++++++++++++++++++ block/monitor/bitmap-qmp-cmds.c | 5 +- block/reqlist.c | 100 +++++++++++++++++ util/hbitmap.c | 36 +++++++ block/meson.build | 2 + 14 files changed, 613 insertions(+), 103 deletions(-) create mode 100644 include/block/reqlist.h create mode 100644 block/fleecing.c create mode 100644 block/reqlist.c -- 2.29.2
