[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 0/8] Add metadata overlap checks
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PATCH v3 0/8] Add metadata overlap checks |
Date: |
Fri, 30 Aug 2013 09:46:50 +0200 |
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.
v3:
- split PATCH 4/5 into four distinct patches (4/8, 5/8, 6/8 and 7/8,
respectively)
- directly generate a JSON message when marking the image corrupt
- other (minor) fixes according to Kevin's comments
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 (8):
qcow2: Add corrupt bit
qcow2: Metadata overlap checks
qcow2: Employ metadata overlap checks
qcow2-refcount: Move OFLAG_COPIED checks
qcow2-refcount: Repair OFLAG_COPIED errors
qcow2-refcount: Repair shared refcount blocks
qcow2_check: Mark image consistent
qemu-iotests: Overlapping cluster allocations
block/qcow2-cache.c | 17 ++
block/qcow2-cluster.c | 25 ++-
block/qcow2-refcount.c | 455 +++++++++++++++++++++++++++++++++++++++++----
block/qcow2-snapshot.c | 22 +++
block/qcow2.c | 79 +++++++-
block/qcow2.h | 47 ++++-
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 | 44 +++++
tests/qemu-iotests/group | 1 +
15 files changed, 777 insertions(+), 48 deletions(-)
create mode 100755 tests/qemu-iotests/060
create mode 100644 tests/qemu-iotests/060.out
--
1.8.3.1
- [Qemu-devel] [PATCH v3 0/8] Add metadata overlap checks,
Max Reitz <=
- [Qemu-devel] [PATCH v3 1/8] qcow2: Add corrupt bit, Max Reitz, 2013/08/30
- [Qemu-devel] [PATCH v3 2/8] qcow2: Metadata overlap checks, Max Reitz, 2013/08/30
- [Qemu-devel] [PATCH v3 3/8] qcow2: Employ metadata overlap checks, Max Reitz, 2013/08/30
- [Qemu-devel] [PATCH v3 4/8] qcow2-refcount: Move OFLAG_COPIED checks, Max Reitz, 2013/08/30
- [Qemu-devel] [PATCH v3 6/8] qcow2-refcount: Repair shared refcount blocks, Max Reitz, 2013/08/30
- [Qemu-devel] [PATCH v3 8/8] qemu-iotests: Overlapping cluster allocations, Max Reitz, 2013/08/30
- [Qemu-devel] [PATCH v3 5/8] qcow2-refcount: Repair OFLAG_COPIED errors, Max Reitz, 2013/08/30
- [Qemu-devel] [PATCH v3 7/8] qcow2_check: Mark image consistent, Max Reitz, 2013/08/30