Hi all! The main patch is 04, please look at it for description and diagram.
v3: 02: new patch 04: take WRITE permission only when discard_source is required Vladimir Sementsov-Ogievskiy (5): block/copy-before-write: fix permission block/copy-before-write: support unligned snapshot-discard block/copy-before-write: create block_copy bitmap in filter node qapi: blockdev-backup: add discard-source parameter iotests: add backup-discard-source block/backup.c | 5 +- block/block-copy.c | 12 +- block/copy-before-write.c | 39 ++++- block/copy-before-write.h | 1 + block/replication.c | 4 +- blockdev.c | 2 +- include/block/block-common.h | 2 + include/block/block-copy.h | 2 + include/block/block_int-global-state.h | 2 +- qapi/block-core.json | 4 + tests/qemu-iotests/257.out | 112 ++++++------- .../qemu-iotests/tests/backup-discard-source | 151 ++++++++++++++++++ .../tests/backup-discard-source.out | 5 + 13 files changed, 271 insertions(+), 70 deletions(-) create mode 100755 tests/qemu-iotests/tests/backup-discard-source create mode 100644 tests/qemu-iotests/tests/backup-discard-source.out -- 2.34.1