Hi, The v1 cover letter explained this series’s purpose: https://lists.nongnu.org/archive/html/qemu-block/2019-07/msg01290.html
The v2 cover letter explained the v2 changes: https://lists.nongnu.org/archive/html/qemu-block/2019-08/msg00921.html The only changes in v3 are: - Patches 12 and 13: Added notes to the commit messages why it’s OK to not let the user choose which snapshots to drop (I wanted to also address Eric’s idea of letting QCowSnapshot.extra_data_size be always >= sizeof(QCowSnapshotExtraData) and thus save the MAX(sizeof(extra), sn->extra_data_size) in qcow2_write_snapshots(), but that doesn’t really work, because then we have no way of knowing later whether the image is compliant and thus needs fixing or not. He gave me an R-b anyway, so I guess it’s fine. O:-)) This series now has R-bs from Eric on all patches. I’m only posting it because I felt a bit bad about just taking the series as-is and add the commit notes to 12 and 13 while applying it. (Also, maybe there is someone who saw me have a bit of discussion with Eric and thus assumed I would definitely send a v3 that they could then review.) Max Reitz (16): include: Move endof() up from hw/virtio/virtio.h qcow2: Use endof() qcow2: Add Error ** to qcow2_read_snapshots() qcow2: Keep unknown extra snapshot data qcow2: Make qcow2_write_snapshots() public qcow2: Put qcow2_upgrade() into its own function qcow2: Write v3-compliant snapshot list on upgrade qcow2: Separate qcow2_check_read_snapshot_table() qcow2: Add qcow2_check_fix_snapshot_table() qcow2: Fix broken snapshot table entries qcow2: Keep track of the snapshot table length qcow2: Fix overly long snapshot tables qcow2: Repair snapshot table with too many entries qcow2: Fix v3 snapshot table entry compliancy iotests: Add peek_file* functions iotests: Test qcow2's snapshot table handling block/qcow2.h | 15 +- include/hw/virtio/virtio.h | 7 - include/qemu/compiler.h | 7 + block/qcow2-snapshot.c | 323 +++++++++++++++++++-- block/qcow2.c | 155 +++++++++-- hw/block/virtio-blk.c | 4 +- hw/net/virtio-net.c | 10 +- tests/qemu-iotests/261 | 523 +++++++++++++++++++++++++++++++++++ tests/qemu-iotests/261.out | 346 +++++++++++++++++++++++ tests/qemu-iotests/common.rc | 20 ++ tests/qemu-iotests/group | 1 + 11 files changed, 1354 insertions(+), 57 deletions(-) create mode 100755 tests/qemu-iotests/261 create mode 100644 tests/qemu-iotests/261.out -- 2.21.0
