424 lines
12 KiB
Diff
424 lines
12 KiB
Diff
From 8c7a6486578c7d3e95ca72d798a3e2a5c3f8c348 Mon Sep 17 00:00:00 2001
|
|
From: Markus Armbruster <armbru@redhat.com>
|
|
Date: Mon, 18 Jun 2018 08:43:15 +0200
|
|
Subject: [PATCH 017/268] block: Add block-specific QDict header
|
|
|
|
RH-Author: Markus Armbruster <armbru@redhat.com>
|
|
Message-id: <20180618084330.30009-9-armbru@redhat.com>
|
|
Patchwork-id: 80736
|
|
O-Subject: [RHEL-7.6 qemu-kvm-rhev PATCH 08/23] block: Add block-specific QDict header
|
|
Bugzilla: 1557995
|
|
RH-Acked-by: Max Reitz <mreitz@redhat.com>
|
|
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
|
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
|
From: Max Reitz <mreitz@redhat.com>
|
|
|
|
There are numerous QDict functions that have been introduced for and are
|
|
used only by the block layer. Move their declarations into an own
|
|
header file to reflect that.
|
|
|
|
While qdict_extract_subqdict() is in fact used outside of the block
|
|
layer (in util/qemu-config.c), it is still a function related very
|
|
closely to how the block layer works with nested QDicts, namely by
|
|
sometimes flattening them. Therefore, its declaration is put into this
|
|
header as well and util/qemu-config.c includes it with a comment stating
|
|
exactly which function it needs.
|
|
|
|
Suggested-by: Markus Armbruster <armbru@redhat.com>
|
|
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
Message-Id: <20180509165530.29561-7-mreitz@redhat.com>
|
|
[Copyright note tweaked, superfluous includes dropped]
|
|
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
(cherry picked from commit 609f45ea9507fc1603eaeda7f5066b99beac6721)
|
|
[Trivial conflict in block/nbd.c resolved]
|
|
|
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
---
|
|
block.c | 1 +
|
|
block/gluster.c | 1 +
|
|
block/iscsi.c | 1 +
|
|
block/nbd.c | 1 +
|
|
block/nfs.c | 1 +
|
|
block/parallels.c | 1 +
|
|
block/qcow.c | 1 +
|
|
block/qcow2.c | 1 +
|
|
block/qed.c | 1 +
|
|
block/quorum.c | 1 +
|
|
block/rbd.c | 1 +
|
|
block/sheepdog.c | 1 +
|
|
block/snapshot.c | 1 +
|
|
block/ssh.c | 1 +
|
|
block/vhdx.c | 1 +
|
|
block/vpc.c | 1 +
|
|
block/vvfat.c | 1 +
|
|
block/vxhs.c | 1 +
|
|
blockdev.c | 1 +
|
|
include/block/qdict.h | 32 ++++++++++++++++++++++++++++++++
|
|
include/qapi/qmp/qdict.h | 17 -----------------
|
|
qobject/qdict.c | 1 +
|
|
tests/check-qdict.c | 1 +
|
|
tests/check-qobject.c | 1 +
|
|
tests/test-replication.c | 1 +
|
|
util/qemu-config.c | 1 +
|
|
26 files changed, 56 insertions(+), 17 deletions(-)
|
|
create mode 100644 include/block/qdict.h
|
|
|
|
diff --git a/block.c b/block.c
|
|
index 676e57f..3c3e8fd 100644
|
|
--- a/block.c
|
|
+++ b/block.c
|
|
@@ -27,6 +27,7 @@
|
|
#include "block/block_int.h"
|
|
#include "block/blockjob.h"
|
|
#include "block/nbd.h"
|
|
+#include "block/qdict.h"
|
|
#include "qemu/error-report.h"
|
|
#include "module_block.h"
|
|
#include "qemu/module.h"
|
|
diff --git a/block/gluster.c b/block/gluster.c
|
|
index 55be566..418bb73 100644
|
|
--- a/block/gluster.c
|
|
+++ b/block/gluster.c
|
|
@@ -11,6 +11,7 @@
|
|
#include "qemu/osdep.h"
|
|
#include <glusterfs/api/glfs.h>
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/error.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
#include "qapi/qmp/qerror.h"
|
|
diff --git a/block/iscsi.c b/block/iscsi.c
|
|
index 658462b..1705187 100644
|
|
--- a/block/iscsi.c
|
|
+++ b/block/iscsi.c
|
|
@@ -33,6 +33,7 @@
|
|
#include "qemu/bitops.h"
|
|
#include "qemu/bitmap.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "scsi/constants.h"
|
|
#include "qemu/iov.h"
|
|
#include "qemu/option.h"
|
|
diff --git a/block/nbd.c b/block/nbd.c
|
|
index 3e1693c..f499830 100644
|
|
--- a/block/nbd.c
|
|
+++ b/block/nbd.c
|
|
@@ -28,6 +28,7 @@
|
|
|
|
#include "qemu/osdep.h"
|
|
#include "block/nbd-client.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/error.h"
|
|
#include "qemu/uri.h"
|
|
#include "block/block_int.h"
|
|
diff --git a/block/nfs.c b/block/nfs.c
|
|
index 66fddf1..5159ef0 100644
|
|
--- a/block/nfs.c
|
|
+++ b/block/nfs.c
|
|
@@ -29,6 +29,7 @@
|
|
#include "qemu/error-report.h"
|
|
#include "qapi/error.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "trace.h"
|
|
#include "qemu/iov.h"
|
|
#include "qemu/option.h"
|
|
diff --git a/block/parallels.c b/block/parallels.c
|
|
index 045810d..0ee1f6a 100644
|
|
--- a/block/parallels.c
|
|
+++ b/block/parallels.c
|
|
@@ -31,6 +31,7 @@
|
|
#include "qemu/osdep.h"
|
|
#include "qapi/error.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "sysemu/block-backend.h"
|
|
#include "qemu/module.h"
|
|
#include "qemu/option.h"
|
|
diff --git a/block/qcow.c b/block/qcow.c
|
|
index 4b2f7db..fb821ad 100644
|
|
--- a/block/qcow.c
|
|
+++ b/block/qcow.c
|
|
@@ -26,6 +26,7 @@
|
|
#include "qapi/error.h"
|
|
#include "qemu/error-report.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "sysemu/block-backend.h"
|
|
#include "qemu/module.h"
|
|
#include "qemu/option.h"
|
|
diff --git a/block/qcow2.c b/block/qcow2.c
|
|
index 2f36e63..fa9f557 100644
|
|
--- a/block/qcow2.c
|
|
+++ b/block/qcow2.c
|
|
@@ -24,6 +24,7 @@
|
|
|
|
#include "qemu/osdep.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "sysemu/block-backend.h"
|
|
#include "qemu/module.h"
|
|
#include <zlib.h>
|
|
diff --git a/block/qed.c b/block/qed.c
|
|
index 1db8eaf..9a8997a 100644
|
|
--- a/block/qed.c
|
|
+++ b/block/qed.c
|
|
@@ -13,6 +13,7 @@
|
|
*/
|
|
|
|
#include "qemu/osdep.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/error.h"
|
|
#include "qemu/timer.h"
|
|
#include "qemu/bswap.h"
|
|
diff --git a/block/quorum.c b/block/quorum.c
|
|
index a5051da..f1f39ba 100644
|
|
--- a/block/quorum.c
|
|
+++ b/block/quorum.c
|
|
@@ -17,6 +17,7 @@
|
|
#include "qemu/cutils.h"
|
|
#include "qemu/option.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/error.h"
|
|
#include "qapi/qapi-events-block.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
diff --git a/block/rbd.c b/block/rbd.c
|
|
index 2842c0e..e695cf2 100644
|
|
--- a/block/rbd.c
|
|
+++ b/block/rbd.c
|
|
@@ -18,6 +18,7 @@
|
|
#include "qemu/error-report.h"
|
|
#include "qemu/option.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "crypto/secret.h"
|
|
#include "qemu/cutils.h"
|
|
#include "qapi/qmp/qstring.h"
|
|
diff --git a/block/sheepdog.c b/block/sheepdog.c
|
|
index 07529f4..fd3876f 100644
|
|
--- a/block/sheepdog.c
|
|
+++ b/block/sheepdog.c
|
|
@@ -24,6 +24,7 @@
|
|
#include "qemu/option.h"
|
|
#include "qemu/sockets.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "sysemu/block-backend.h"
|
|
#include "qemu/bitops.h"
|
|
#include "qemu/cutils.h"
|
|
diff --git a/block/snapshot.c b/block/snapshot.c
|
|
index 2953d96..f9903bc 100644
|
|
--- a/block/snapshot.c
|
|
+++ b/block/snapshot.c
|
|
@@ -25,6 +25,7 @@
|
|
#include "qemu/osdep.h"
|
|
#include "block/snapshot.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/error.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
#include "qapi/qmp/qerror.h"
|
|
diff --git a/block/ssh.c b/block/ssh.c
|
|
index 412a1bf..5931064 100644
|
|
--- a/block/ssh.c
|
|
+++ b/block/ssh.c
|
|
@@ -28,6 +28,7 @@
|
|
#include <libssh2_sftp.h>
|
|
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/error.h"
|
|
#include "qemu/error-report.h"
|
|
#include "qemu/option.h"
|
|
diff --git a/block/vhdx.c b/block/vhdx.c
|
|
index c3a4220..26c05aa 100644
|
|
--- a/block/vhdx.c
|
|
+++ b/block/vhdx.c
|
|
@@ -18,6 +18,7 @@
|
|
#include "qemu/osdep.h"
|
|
#include "qapi/error.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "sysemu/block-backend.h"
|
|
#include "qemu/module.h"
|
|
#include "qemu/option.h"
|
|
diff --git a/block/vpc.c b/block/vpc.c
|
|
index 0ebfcd3..41c8c98 100644
|
|
--- a/block/vpc.c
|
|
+++ b/block/vpc.c
|
|
@@ -26,6 +26,7 @@
|
|
#include "qemu/osdep.h"
|
|
#include "qapi/error.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "sysemu/block-backend.h"
|
|
#include "qemu/module.h"
|
|
#include "qemu/option.h"
|
|
diff --git a/block/vvfat.c b/block/vvfat.c
|
|
index 662dca0..4595f33 100644
|
|
--- a/block/vvfat.c
|
|
+++ b/block/vvfat.c
|
|
@@ -27,6 +27,7 @@
|
|
#include <dirent.h>
|
|
#include "qapi/error.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "qemu/module.h"
|
|
#include "qemu/option.h"
|
|
#include "qemu/bswap.h"
|
|
diff --git a/block/vxhs.c b/block/vxhs.c
|
|
index 96e83d9..25fea7f 100644
|
|
--- a/block/vxhs.c
|
|
+++ b/block/vxhs.c
|
|
@@ -13,6 +13,7 @@
|
|
#include <gmodule.h>
|
|
#include <sys/param.h>
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/qmp/qerror.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
#include "qapi/qmp/qstring.h"
|
|
diff --git a/blockdev.c b/blockdev.c
|
|
index 3808b1f..19c04d9 100644
|
|
--- a/blockdev.c
|
|
+++ b/blockdev.c
|
|
@@ -35,6 +35,7 @@
|
|
#include "sysemu/blockdev.h"
|
|
#include "hw/block/block.h"
|
|
#include "block/blockjob.h"
|
|
+#include "block/qdict.h"
|
|
#include "block/throttle-groups.h"
|
|
#include "monitor/monitor.h"
|
|
#include "qemu/error-report.h"
|
|
diff --git a/include/block/qdict.h b/include/block/qdict.h
|
|
new file mode 100644
|
|
index 0000000..71c037a
|
|
--- /dev/null
|
|
+++ b/include/block/qdict.h
|
|
@@ -0,0 +1,32 @@
|
|
+/*
|
|
+ * Special QDict functions used by the block layer
|
|
+ *
|
|
+ * Copyright (c) 2013-2018 Red Hat, Inc.
|
|
+ *
|
|
+ * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
|
|
+ * See the COPYING.LIB file in the top-level directory.
|
|
+ */
|
|
+
|
|
+#ifndef BLOCK_QDICT_H
|
|
+#define BLOCK_QDICT_H
|
|
+
|
|
+#include "qapi/qmp/qdict.h"
|
|
+
|
|
+void qdict_copy_default(QDict *dst, QDict *src, const char *key);
|
|
+void qdict_set_default_str(QDict *dst, const char *key, const char *val);
|
|
+
|
|
+void qdict_join(QDict *dest, QDict *src, bool overwrite);
|
|
+
|
|
+void qdict_extract_subqdict(QDict *src, QDict **dst, const char *start);
|
|
+void qdict_array_split(QDict *src, QList **dst);
|
|
+int qdict_array_entries(QDict *src, const char *subqdict);
|
|
+QObject *qdict_crumple(const QDict *src, Error **errp);
|
|
+void qdict_flatten(QDict *qdict);
|
|
+
|
|
+typedef struct QDictRenames {
|
|
+ const char *from;
|
|
+ const char *to;
|
|
+} QDictRenames;
|
|
+bool qdict_rename_keys(QDict *qdict, const QDictRenames *renames, Error **errp);
|
|
+
|
|
+#endif
|
|
diff --git a/include/qapi/qmp/qdict.h b/include/qapi/qmp/qdict.h
|
|
index 921a28d..7f3ec10 100644
|
|
--- a/include/qapi/qmp/qdict.h
|
|
+++ b/include/qapi/qmp/qdict.h
|
|
@@ -67,23 +67,6 @@ int64_t qdict_get_try_int(const QDict *qdict, const char *key,
|
|
bool qdict_get_try_bool(const QDict *qdict, const char *key, bool def_value);
|
|
const char *qdict_get_try_str(const QDict *qdict, const char *key);
|
|
|
|
-void qdict_copy_default(QDict *dst, QDict *src, const char *key);
|
|
-void qdict_set_default_str(QDict *dst, const char *key, const char *val);
|
|
-
|
|
QDict *qdict_clone_shallow(const QDict *src);
|
|
-void qdict_flatten(QDict *qdict);
|
|
-
|
|
-void qdict_extract_subqdict(QDict *src, QDict **dst, const char *start);
|
|
-void qdict_array_split(QDict *src, QList **dst);
|
|
-int qdict_array_entries(QDict *src, const char *subqdict);
|
|
-QObject *qdict_crumple(const QDict *src, Error **errp);
|
|
-
|
|
-void qdict_join(QDict *dest, QDict *src, bool overwrite);
|
|
-
|
|
-typedef struct QDictRenames {
|
|
- const char *from;
|
|
- const char *to;
|
|
-} QDictRenames;
|
|
-bool qdict_rename_keys(QDict *qdict, const QDictRenames *renames, Error **errp);
|
|
|
|
#endif /* QDICT_H */
|
|
diff --git a/qobject/qdict.c b/qobject/qdict.c
|
|
index 22800ee..0554c64 100644
|
|
--- a/qobject/qdict.c
|
|
+++ b/qobject/qdict.c
|
|
@@ -11,6 +11,7 @@
|
|
*/
|
|
|
|
#include "qemu/osdep.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/qmp/qnum.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
#include "qapi/qmp/qbool.h"
|
|
diff --git a/tests/check-qdict.c b/tests/check-qdict.c
|
|
index eba5d35..93e2112 100644
|
|
--- a/tests/check-qdict.c
|
|
+++ b/tests/check-qdict.c
|
|
@@ -11,6 +11,7 @@
|
|
*/
|
|
|
|
#include "qemu/osdep.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
#include "qapi/qmp/qlist.h"
|
|
#include "qapi/qmp/qnum.h"
|
|
diff --git a/tests/check-qobject.c b/tests/check-qobject.c
|
|
index 5cb08fc..16ccbde 100644
|
|
--- a/tests/check-qobject.c
|
|
+++ b/tests/check-qobject.c
|
|
@@ -8,6 +8,7 @@
|
|
*/
|
|
|
|
#include "qemu/osdep.h"
|
|
+#include "block/qdict.h"
|
|
#include "qapi/qmp/qbool.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
#include "qapi/qmp/qlist.h"
|
|
diff --git a/tests/test-replication.c b/tests/test-replication.c
|
|
index 68c0d04..c8165ae 100644
|
|
--- a/tests/test-replication.c
|
|
+++ b/tests/test-replication.c
|
|
@@ -15,6 +15,7 @@
|
|
#include "qemu/option.h"
|
|
#include "replication.h"
|
|
#include "block/block_int.h"
|
|
+#include "block/qdict.h"
|
|
#include "sysemu/block-backend.h"
|
|
|
|
#define IMG_SIZE (64 * 1024 * 1024)
|
|
diff --git a/util/qemu-config.c b/util/qemu-config.c
|
|
index 14d8402..9d2e278 100644
|
|
--- a/util/qemu-config.c
|
|
+++ b/util/qemu-config.c
|
|
@@ -1,4 +1,5 @@
|
|
#include "qemu/osdep.h"
|
|
+#include "block/qdict.h" /* for qdict_extract_subqdict() */
|
|
#include "qapi/error.h"
|
|
#include "qapi/qapi-commands-misc.h"
|
|
#include "qapi/qmp/qdict.h"
|
|
--
|
|
1.8.3.1
|
|
|