[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/18] block: Make remaining uses of qobject input v
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH 09/18] block: Make remaining uses of qobject input visitor more robust |
Date: |
Tue, 12 Jun 2018 14:58:12 +0200 |
Remaining uses of qobject_input_visitor_new_keyval() in the block
subsystem:
* block_crypto_create_opts_init()
Currently doesn't visit any non-string scalars, thus safe. It's
called from
- block_crypto_open_luks()
Creates the QDict with qemu_opts_to_qdict_filtered(), which
creates only string scalars, but has a TODO asking for other types.
- qcow_open()
- qcow2_open(), qcow2_co_invalidate_cache(), qcow2_reopen_prepare()
* block_crypto_create_opts_init(), called from
- block_crypto_co_create_opts_luks()
Also creates the QDict with qemu_opts_to_qdict_filtered().
* vdi_co_create_opts()
Also creates the QDict with qemu_opts_to_qdict_filtered().
Replace these uses by qobject_input_visitor_new_flat_confused() for
robustness. This adds crumpling. Right now, that's a no-op, but if
we ever extend these things in non-flat ways, crumpling will be
needed.
Signed-off-by: Markus Armbruster <address@hidden>
---
block/crypto.c | 6 +++---
block/vdi.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/block/crypto.c b/block/crypto.c
index bc322b50f5..25d12e9d47 100644
--- a/block/crypto.c
+++ b/block/crypto.c
@@ -21,11 +21,11 @@
#include "qemu/osdep.h"
#include "block/block_int.h"
+#include "block/qdict.h"
#include "sysemu/block-backend.h"
#include "crypto/block.h"
#include "qapi/opts-visitor.h"
#include "qapi/qapi-visit-crypto.h"
-#include "qapi/qmp/qdict.h"
#include "qapi/qobject-input-visitor.h"
#include "qapi/error.h"
#include "qemu/option.h"
@@ -159,7 +159,7 @@ block_crypto_open_opts_init(QCryptoBlockFormat format,
ret = g_new0(QCryptoBlockOpenOptions, 1);
ret->format = format;
- v = qobject_input_visitor_new_keyval(QOBJECT(opts));
+ v = qobject_input_visitor_new_flat_confused(opts, &error_abort);
visit_start_struct(v, NULL, NULL, 0, &local_err);
if (local_err) {
@@ -210,7 +210,7 @@ block_crypto_create_opts_init(QCryptoBlockFormat format,
ret = g_new0(QCryptoBlockCreateOptions, 1);
ret->format = format;
- v = qobject_input_visitor_new_keyval(QOBJECT(opts));
+ v = qobject_input_visitor_new_flat_confused(opts, &error_abort);
visit_start_struct(v, NULL, NULL, 0, &local_err);
if (local_err) {
diff --git a/block/vdi.c b/block/vdi.c
index 668af0a828..6b6eed126d 100644
--- a/block/vdi.c
+++ b/block/vdi.c
@@ -51,10 +51,10 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
-#include "qapi/qmp/qdict.h"
#include "qapi/qobject-input-visitor.h"
#include "qapi/qapi-visit-block-core.h"
#include "block/block_int.h"
+#include "block/qdict.h"
#include "sysemu/block-backend.h"
#include "qemu/module.h"
#include "qemu/option.h"
@@ -934,7 +934,7 @@ static int coroutine_fn vdi_co_create_opts(const char
*filename, QemuOpts *opts,
}
/* Get the QAPI object */
- v = qobject_input_visitor_new_keyval(QOBJECT(qdict));
+ v = qobject_input_visitor_new_flat_confused(qdict, &error_abort);
visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
visit_free(v);
--
2.17.1
- [Qemu-devel] [PATCH 12/18] block-qdict: Clean up qdict_crumple() a bit, (continued)
- [Qemu-devel] [PATCH 12/18] block-qdict: Clean up qdict_crumple() a bit, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 02/18] iscsi: Drop deprecated -drive parameter "filename", Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 06/18] block: Fix -drive for certain non-string scalars, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 14/18] check-block-qdict: Rename qdict_flatten()'s variables for clarity, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 03/18] block: Add block-specific QDict header, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 05/18] block: Fix -blockdev for certain non-string scalars, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 13/18] block-qdict: Simplify qdict_is_list() some, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 09/18] block: Make remaining uses of qobject input visitor more robust,
Markus Armbruster <=
- [Qemu-devel] [PATCH 17/18] rbd: New parameter auth-client-required, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 18/18] rbd: New parameter key-secret, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 07/18] block: Clean up a misuse of qobject_to() in .bdrv_co_create_opts(), Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 16/18] block: Fix -blockdev / blockdev-add for empty objects and arrays, Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 08/18] block: Factor out qobject_input_visitor_new_flat_confused(), Markus Armbruster, 2018/06/12
- [Qemu-devel] [PATCH 04/18] qobject: Move block-specific qdict code to block-qdict.c, Markus Armbruster, 2018/06/12
- Re: [Qemu-devel] [PATCH 00/18] block: Configuration fixes and rbd authentication, Kevin Wolf, 2018/06/12
- Re: [Qemu-devel] [PATCH 00/18] block: Configuration fixes and rbd authentication, Kevin Wolf, 2018/06/12