If a qcow2 image file becomes corrupted, any write may inadvertently
overwrite important metadata structures such as the L1 table. This
series adds functionality for detecting, preventing and (to some extent)
repairing such collisions.

v2:
 - Generally implemented Kevin's comments, especially:
   - new QMP event QEVENT_BLOCK_IMAGE_CORRUPTED
   - removed BDRV_O_REPAIR in favor of BDRV_O_CHECK | BDRV_O_RDWR
   - always check full clusters for overlaps
 - removed qcow2_check_allocations in favor of some
   qcow2_check_refcounts extensions that will hopefully include all
   that functionality

Max Reitz (5):
  qcow2: Add corrupt bit
  qcow2: Metadata overlap checks
  qcow2: Employ metadata overlap checks
  qcow2: More complete consistency check
  qemu-iotests: Overlapping cluster allocations

 block/qcow2-cache.c        |  17 ++
 block/qcow2-cluster.c      |  25 ++-
 block/qcow2-refcount.c     | 397 +++++++++++++++++++++++++++++++++++++++++----
 block/qcow2-snapshot.c     |  22 +++
 block/qcow2.c              |  87 +++++++++-
 block/qcow2.h              |  36 +++-
 docs/specs/qcow2.txt       |   7 +-
 include/block/block.h      |   1 +
 include/monitor/monitor.h  |   1 +
 monitor.c                  |   1 +
 tests/qemu-iotests/031.out |  12 +-
 tests/qemu-iotests/036.out |   2 +-
 tests/qemu-iotests/060     | 111 +++++++++++++
 tests/qemu-iotests/060.out |  37 +++++
 tests/qemu-iotests/group   |   1 +
 15 files changed, 708 insertions(+), 49 deletions(-)
 create mode 100755 tests/qemu-iotests/060
 create mode 100644 tests/qemu-iotests/060.out

-- 
1.8.3.1


Reply via email to