This series is adding [-c | --compress] option to "qemu-img rebase" command, which might prove useful for saving some disk space when, for instance, manipulating chains of backup images. Along the way I had to make a couple of minor improvements.
The first 2 patches are a bug fix + corresponding test case. Patch 3 merely fixes wrong args used in allocation. Patch 4 makes write requests during rebase operation cluster_size-aligned, which seems to be beneficial for both non-compressed and compressed mode. The last 2 patches are the actual feature implementation + tests. Andrey Drobyshev (6): qemu-img: rebase: stop when reaching EOF of old backing file qemu-iotests: 024: add rebasing test case for overlay_size > backing_size qemu-img: rebase: use backing files' BlockBackend for buffer alignment qemu-img: rebase: avoid unnecessary COW operations qemu-img: add compression option to rebase subcommand iotests: add test 314 for "qemu-img rebase" with compression docs/tools/qemu-img.rst | 6 +- qemu-img-cmds.hx | 4 +- qemu-img.c | 106 ++++++++++++++++++------ tests/qemu-iotests/024 | 57 +++++++++++++ tests/qemu-iotests/024.out | 30 +++++++ tests/qemu-iotests/314 | 165 +++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/314.out | 75 +++++++++++++++++ 7 files changed, 415 insertions(+), 28 deletions(-) create mode 100755 tests/qemu-iotests/314 create mode 100644 tests/qemu-iotests/314.out -- 2.31.1