mirror of https://gitee.com/openkylin/qemu.git
qcow2: Add overlap-check options
Add runtime options to tune the overlap checks to be performed before write accesses. Signed-off-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
3e3553905c
commit
05de7e86ca
|
@ -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 */ }
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue