Hi all! These series introduce backup-top driver. It's a filter-node, which do copy-before-write operation. Mirror uses filter-node for handling guest writes, let's move to filter-node (from write-notifiers) for backup too
v5: Now, based on John's bitmaps branch patch "block: allow serialized reads to intersect" removed 03: reword comment (Kevin) 07: fix comments style 08: new 09: mostly rewritten 10: fix comment style 11: - fix comments style - fix uninitialized backup_top - fix return -> goto error if failed to append filter v4: fixes, rewrite driver to be implicit, drop new interfaces and don't move to BdrvDirtyBitmap for now, as it's not obvious will it be really needed and don't relate to these series more. v3 was "[PATCH v3 00/18] fleecing-hook driver for backup" v2 was "[RFC v2] new, node-graph-based fleecing and backup" ---- These series (v5) are based on John's bitmaps branch Based-on: https://github.com/jnsnow/qemu bitmaps Vladimir Sementsov-Ogievskiy (11): block/backup: simplify backup_incremental_init_copy_bitmap block/backup: move to copy_bitmap with granularity block: improve should_update_child iotests: handle -f argument correctly for qemu_io_silent iotests: allow resume_drive by node name iotests: prepare 055 to graph changes during backup job block: introduce backup-top filter driver block/io: refactor wait_serialising_requests block: add lock/unlock range functions block/backup: tiny refactor backup_job_create block/backup: use backup-top instead of write notifiers block/backup-top.h | 43 ++++ include/block/block_int.h | 4 + block.c | 33 ++- block/backup-top.c | 306 ++++++++++++++++++++++++ block/backup.c | 424 +++++++++++++++++----------------- block/io.c | 69 +++++- block/Makefile.objs | 2 + tests/qemu-iotests/055 | 23 +- tests/qemu-iotests/iotests.py | 16 +- 9 files changed, 682 insertions(+), 238 deletions(-) create mode 100644 block/backup-top.h create mode 100644 block/backup-top.c -- 2.18.0