The main purpose of this series is to add a progress report to qemu-img amend. This is achieved by adding a callback function to bdrv_amend_options() - the reasons for this choice are explained in patch 1.
While adapting qcow2's expand_zero_clusters_in_l1() accordingly, I noticed a way to simplify it and get rid of the rather ugly bitmap used there (patch 6). Changes from v3 (v4 is a rebase of v3 on current master) - Patch 2: There is BlockBackend now (only contextual) - Patch 4: An instance of g_try_malloc0() instead of g_malloc0() (only contextual) - Patch 5: Changes in the qcow2 check functions due to my "qcow2: Fix image repairing" series (only contextual) - Patch 6: Originally, contained a hunk which removed a g_malloc0() and the buffer size calculation before it; now, it's a g_try_malloc0() and therefore the hunk has to remove the error handling as well. This is a functional change, but I decided to keep the R-bs anyway because it is really straightforward. Since with the exception of patch 6 all of these were contextual changes (and the change to patch 6 was really straightforward), I kept all the Reviewed-bys and this series is therefore still fully reviewed. git-backport-diff against v3: 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/7:[----] [--] 'block: Add status callback to bdrv_amend_options()' 002/7:[----] [-C] 'qemu-img: Add progress output for amend' 003/7:[----] [--] 'qemu-img: Fix insignificant memleak' 004/7:[----] [-C] 'block/qcow2: Implement status CB for amend' 005/7:[----] [-C] 'block/qcow2: Make get_refcount() global' 006/7:[0006] [FC] 'block/qcow2: Simplify shared L2 handling in amend' 007/7:[----] [--] 'iotests: Expand test 061' Max Reitz (7): block: Add status callback to bdrv_amend_options() qemu-img: Add progress output for amend qemu-img: Fix insignificant memleak block/qcow2: Implement status CB for amend block/qcow2: Make get_refcount() global block/qcow2: Simplify shared L2 handling in amend iotests: Expand test 061 block.c | 5 +- block/qcow2-cluster.c | 117 +++++++++++++++++++++------------------------ block/qcow2-refcount.c | 26 +++++----- block/qcow2.c | 10 ++-- block/qcow2.h | 5 +- include/block/block.h | 8 +++- include/block/block_int.h | 3 +- qemu-img-cmds.hx | 4 +- qemu-img.c | 29 +++++++++-- qemu-img.texi | 2 +- tests/qemu-iotests/061 | 25 ++++++++++ tests/qemu-iotests/061.out | 30 ++++++++++++ tests/qemu-iotests/group | 2 +- 13 files changed, 173 insertions(+), 93 deletions(-) -- 1.9.3