This series adds support to qemu for changing the refcount_bits option of an existing qcow2 file through the qemu-img amend command.
Originally (up until v7), this series was called "qcow2: Support refcount orders != 4", but by now that support has already been merged so all that is left is support for qemu-img amend. v8: - Rebase onto master (one contextual conflict in an iotest reference output, but other than that this only means that the first 15 patches are dropped) git-backport-diff against v7: Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/10:[----] [--] 'progress: Allow regressing progress' 002/10:[----] [--] 'block: Add opaque value to the amend CB' 003/10:[----] [-C] 'qcow2: Use error_report() in qcow2_amend_options()' 004/10:[----] [--] 'qcow2: Use abort() instead of assert(false)' 005/10:[----] [--] 'qcow2: Split upgrade/downgrade paths for amend' 006/10:[----] [--] 'qcow2: Use intermediate helper CB for amend' 007/10:[----] [--] 'qcow2: Add function for refcount order amendment' 008/10:[----] [--] 'qcow2: Invoke refcount order amendment function' 009/10:[----] [--] 'qcow2: Point to amend function in check' 010/10:[----] [--] 'iotests: Extend test 112 for qemu-img amend' Max Reitz (10): progress: Allow regressing progress block: Add opaque value to the amend CB qcow2: Use error_report() in qcow2_amend_options() qcow2: Use abort() instead of assert(false) qcow2: Split upgrade/downgrade paths for amend qcow2: Use intermediate helper CB for amend qcow2: Add function for refcount order amendment qcow2: Invoke refcount order amendment function qcow2: Point to amend function in check iotests: Extend test 112 for qemu-img amend block.c | 4 +- block/qcow2-cluster.c | 14 +- block/qcow2-refcount.c | 455 +++++++++++++++++++++++++++++++++++++++++++++ block/qcow2.c | 178 ++++++++++++++---- block/qcow2.h | 7 +- include/block/block.h | 4 +- include/block/block_int.h | 3 +- qemu-img.c | 5 +- tests/qemu-iotests/061.out | 14 +- tests/qemu-iotests/112 | 109 +++++++++++ tests/qemu-iotests/112.out | 71 +++++++ util/qemu-progress.c | 3 +- 12 files changed, 808 insertions(+), 59 deletions(-) -- 2.1.0