summaryrefslogtreecommitdiffstats
path: root/include/block
diff options
context:
space:
mode:
authorKevin Wolf2015-05-08 16:15:03 +0200
committerKevin Wolf2015-12-18 14:34:43 +0100
commit145f598e4a96f6bb78664852bd589e4ea326be94 (patch)
tree43362cf4095280fb3f5816ea62b97d44c15f52b4 /include/block
parentblock: Split out parse_json_protocol() (diff)
downloadqemu-145f598e4a96f6bb78664852bd589e4ea326be94.tar.gz
qemu-145f598e4a96f6bb78664852bd589e4ea326be94.tar.xz
qemu-145f598e4a96f6bb78664852bd589e4ea326be94.zip
block: Introduce bs->explicit_options
bs->options doesn't only contain options that the user explicitly requested, but also option that were derived from flags, the filename or inherited from the parent node. For reopen, it is important to know the difference because reopening the parent can change inherited values in child nodes, but it shouldn't change any options that were explicitly specified for the child. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r--include/block/block.h1
-rw-r--r--include/block/block_int.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/include/block/block.h b/include/block/block.h
index 2e77288d82..121544b3c3 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -150,6 +150,7 @@ typedef struct BDRVReopenState {
BlockDriverState *bs;
int flags;
QDict *options;
+ QDict *explicit_options;
void *opaque;
} BDRVReopenState;
diff --git a/include/block/block_int.h b/include/block/block_int.h
index abb6224439..edfe376ecc 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -459,6 +459,7 @@ struct BlockDriverState {
QLIST_HEAD(, BdrvChild) parents;
QDict *options;
+ QDict *explicit_options;
BlockdevDetectZeroesOptions detect_zeroes;
/* The error object in use for blocking operations on backing_hd */