Am 30.08.2013 um 10:40 hat Max Reitz geschrieben: > When creating a snapshots, the refcount adjustment function basically > adjusted the refcounts of any cluster with a non-zero L2 entry. However, > the L2 entry of unallocated zero clusters is exactly one (therefore > non-zero) which led to wrong refcount updates on cluster 0 (the main > qcow2 header), since the cluster index for these unallocated zero clusters > is 0. > > This series fixes this by taking all cluster types specifically into > account using qcow2_get_cluster_type and handling them accordingly. > Furthermore, a short test is added. > > v3: > - forgot 062.out in v2; now added > > v2: > - more thorough commit message > - take pre-allocated zero clusters into account > - abort on unknown cluster type > - a test case > > Max Reitz (2): > qcow2-refcount: Snapshot update for zero clusters > qemu-iotests: Snapshotting zero clusters > > block/qcow2-refcount.c | 52 +++++++++++++++++++++++++------------ > tests/qemu-iotests/062 | 64 > ++++++++++++++++++++++++++++++++++++++++++++++ > tests/qemu-iotests/062.out | 9 +++++++ > tests/qemu-iotests/group | 1 + > 4 files changed, 109 insertions(+), 17 deletions(-) > create mode 100755 tests/qemu-iotests/062 > create mode 100644 tests/qemu-iotests/062.out
Thanks, applied to the block branch. Kevin