From: Alexander Ivanov <alexander.iva...@virtuozzo.com> Parallels image file can be corrupted this way: two guest memory areas refer to the same host memory area (duplicated offsets in BAT). qemu-img check copies data from duplicated cluster to the new cluster and writes new corresponding offset to BAT instead of duplicated one.
Test 314 uses sample corrupted image parallels-2-duplicated-cluster.bz2. Reading from duplicated offset and from original offset returns the same data. After repairing changing either of these blocks of data does not affect another one. Alexander Ivanov (3): parallels: Add checking and repairing duplicate offsets in BAT parallels: Let duplicates repairing pass without unwanted messages iotests, parallels: Add a test for duplicated clusters block/parallels.c | 112 ++++++++++++++++-- tests/qemu-iotests/314 | 88 ++++++++++++++ tests/qemu-iotests/314.out | 36 ++++++ .../parallels-2-duplicated-cluster.bz2 | Bin 0 -> 148 bytes 4 files changed, 227 insertions(+), 9 deletions(-) create mode 100755 tests/qemu-iotests/314 create mode 100644 tests/qemu-iotests/314.out create mode 100644 tests/qemu-iotests/sample_images/parallels-2-duplicated-cluster.bz2 -- 2.34.1