[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/6] qcow2: Add overlap-check options
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PATCH 3/6] qcow2: Add overlap-check options |
Date: |
Fri, 20 Sep 2013 10:37:08 +0200 |
Add runtime options to tune the overlap checks to be performed before
write accesses.
Signed-off-by: Max Reitz <address@hidden>
---
block/qcow2.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
block/qcow2.h | 9 +++++++++
2 files changed, 55 insertions(+)
diff --git a/block/qcow2.c b/block/qcow2.c
index a1b854c..e74f269 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -354,6 +354,52 @@ static QemuOptsList qcow2_runtime_opts = {
.type = QEMU_OPT_BOOL,
.help = "Generate discard requests when other clusters are freed",
},
+ {
+ .name = QCOW2_OPT_OVERLAP,
+ .type = QEMU_OPT_STRING,
+ .help = "Selects which overlap checks to perform from a range of "
+ "templates (none, constant, cached, all)",
+ },
+ {
+ .name = QCOW2_OPT_OVERLAP_MAIN_HEADER,
+ .type = QEMU_OPT_BOOL,
+ .help = "Check for unintended writes into the main qcow2 header",
+ },
+ {
+ .name = QCOW2_OPT_OVERLAP_ACTIVE_L1,
+ .type = QEMU_OPT_BOOL,
+ .help = "Check for unintended writes into the active L1 table",
+ },
+ {
+ .name = QCOW2_OPT_OVERLAP_ACTIVE_L2,
+ .type = QEMU_OPT_BOOL,
+ .help = "Check for unintended writes into an active L2 table",
+ },
+ {
+ .name = QCOW2_OPT_OVERLAP_REFCOUNT_TABLE,
+ .type = QEMU_OPT_BOOL,
+ .help = "Check for unintended writes into the refcount table",
+ },
+ {
+ .name = QCOW2_OPT_OVERLAP_REFCOUNT_BLOCK,
+ .type = QEMU_OPT_BOOL,
+ .help = "Check for unintended writes into a refcount block",
+ },
+ {
+ .name = QCOW2_OPT_OVERLAP_SNAPSHOT_TABLE,
+ .type = QEMU_OPT_BOOL,
+ .help = "Check for unintended writes into the snapshot table",
+ },
+ {
+ .name = QCOW2_OPT_OVERLAP_INACTIVE_L1,
+ .type = QEMU_OPT_BOOL,
+ .help = "Check for unintended writes into an inactive L1 table",
+ },
+ {
+ .name = QCOW2_OPT_OVERLAP_INACTIVE_L2,
+ .type = QEMU_OPT_BOOL,
+ .help = "Check for unintended writes into an inactive L2 table",
+ },
{ /* end of list */ }
},
};
diff --git a/block/qcow2.h b/block/qcow2.h
index 7dd787d..067ed2f 100644
--- a/block/qcow2.h
+++ b/block/qcow2.h
@@ -63,6 +63,15 @@
#define QCOW2_OPT_DISCARD_REQUEST "pass-discard-request"
#define QCOW2_OPT_DISCARD_SNAPSHOT "pass-discard-snapshot"
#define QCOW2_OPT_DISCARD_OTHER "pass-discard-other"
+#define QCOW2_OPT_OVERLAP "overlap-check"
+#define QCOW2_OPT_OVERLAP_MAIN_HEADER "overlap-check.main-header"
+#define QCOW2_OPT_OVERLAP_ACTIVE_L1 "overlap-check.active-l1"
+#define QCOW2_OPT_OVERLAP_ACTIVE_L2 "overlap-check.active-l2"
+#define QCOW2_OPT_OVERLAP_REFCOUNT_TABLE "overlap-check.refcount-table"
+#define QCOW2_OPT_OVERLAP_REFCOUNT_BLOCK "overlap-check.refcount-block"
+#define QCOW2_OPT_OVERLAP_SNAPSHOT_TABLE "overlap-check.snapshot-table"
+#define QCOW2_OPT_OVERLAP_INACTIVE_L1 "overlap-check.inactive-l1"
+#define QCOW2_OPT_OVERLAP_INACTIVE_L2 "overlap-check.inactive-l2"
typedef struct QCowHeader {
uint32_t magic;
--
1.8.3.1
- [Qemu-devel] [PATCH 0/6] Configure metadata overlap checks at runtime, Max Reitz, 2013/09/20
- [Qemu-devel] [PATCH 1/6] qcow2: Use negated overflow check mask, Max Reitz, 2013/09/20
- [Qemu-devel] [PATCH 2/6] qcow2: Make overlap check mask variable, Max Reitz, 2013/09/20
- [Qemu-devel] [PATCH 3/6] qcow2: Add overlap-check options,
Max Reitz <=
- [Qemu-devel] [PATCH 4/6] qcow2: Array assigning options to OL check bits, Max Reitz, 2013/09/20
- [Qemu-devel] [PATCH 5/6] qcow2: Add more overlap check bitmask macros, Max Reitz, 2013/09/20
- [Qemu-devel] [PATCH 6/6] qcow2: Evaluate overlap check options, Max Reitz, 2013/09/20