v5: Add qemu-iotests for qcow2 shrinking. Do some modifications based on MAX's suggestions in v4.
v4: Add deal with COW clusters in l2 table. When using COW, some of (l2_entry >> s->cluster_bits) will larger than s->refcount_table_size, so need to discard this l2_entry. v3: Fixed host cluster leak. In file block/qcow2.c, just using ftruncate to fix host cluster leak. In file block/qcow2-cluster.c, just re-copy qcow2_grow_l1_table to realize qcow2_shrink_l1_and_l2_table. In file block/qcow2-refcount.c, also update the realization to handle self-describing refcount blocks in function update_refcount. Thanks. Jun Li (3): qcow2: Add qcow2_shrink_l1_and_l2_table for qcow2 shrinking qcow2: add update refcount table realization for update_refcount qcow2: Add qemu-iotests for qcow2 shrinking block/qcow2-cluster.c | 182 +++++++++++++++++++++++++++++++++++++++++++++ block/qcow2-refcount.c | 49 +++++++++++- block/qcow2.c | 37 ++++++++- block/qcow2.h | 2 + tests/qemu-iotests/110 | 76 +++++++++++++++++++ tests/qemu-iotests/110.out | 13 ++++ tests/qemu-iotests/group | 1 + 7 files changed, 356 insertions(+), 4 deletions(-) create mode 100755 tests/qemu-iotests/110 create mode 100644 tests/qemu-iotests/110.out -- 1.9.3