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
v8: 01-03: new 05: add Max's r-b others changed, change description in each patch mail in Notes section. v6-v7 was preparing refactoring, which now is in Max's pull request, and these series based on it: Based-on: https://lists.gnu.org/archive/html/qemu-devel/2019-05/msg06526.html Vladimir Sementsov-Ogievskiy (7): block: teach bdrv_debug_breakpoint skip filters with backing block: swap operation order in bdrv_append block: allow not one child for implicit node block: introduce backup-top filter driver block/io: refactor wait_serialising_requests block: add lock/unlock range functions block/backup: use backup-top instead of write notifiers block/backup-top.h | 64 ++++++++ include/block/block_int.h | 4 + block.c | 60 +++++-- block/backup-top.c | 322 +++++++++++++++++++++++++++++++++++++ block/backup.c | 171 ++++++++------------ block/io.c | 68 ++++++-- block/Makefile.objs | 2 + tests/qemu-iotests/056 | 2 +- tests/qemu-iotests/085.out | 2 +- tests/qemu-iotests/129 | 1 - tests/qemu-iotests/141.out | 2 +- 11 files changed, 567 insertions(+), 131 deletions(-) create mode 100644 block/backup-top.h create mode 100644 block/backup-top.c -- 2.18.0