summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorMarkus Armbruster2017-03-28 10:56:05 +0200
committerJeff Cody2017-03-28 16:00:57 +0200
commit078463977a6139c9725127f2a10d9cd8b9e1b4d6 (patch)
tree633808e1c7f7612d00486bfe62ad47f521a38afa /block
parentrbd: Clean up runtime_opts, fix -drive to reject filename (diff)
downloadqemu-078463977a6139c9725127f2a10d9cd8b9e1b4d6.tar.gz
qemu-078463977a6139c9725127f2a10d9cd8b9e1b4d6.tar.xz
qemu-078463977a6139c9725127f2a10d9cd8b9e1b4d6.zip
rbd: Clean up qemu_rbd_create()'s detour through QemuOpts
The conversion from QDict to QemuOpts is pointless. Simply get the stuff straight from the QDict. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com> Message-id: 1490691368-32099-8-git-send-email-armbru@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
Diffstat (limited to 'block')
-rw-r--r--block/rbd.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/block/rbd.c b/block/rbd.c
index b2afe0732f..16ea60a0d3 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -376,7 +376,6 @@ static int qemu_rbd_create(const char *filename, QemuOpts *opts, Error **errp)
rados_t cluster;
rados_ioctx_t io_ctx;
QDict *options = NULL;
- QemuOpts *rbd_opts = NULL;
int ret = 0;
secretid = qemu_opt_get(opts, "password-secret");
@@ -407,19 +406,11 @@ static int qemu_rbd_create(const char *filename, QemuOpts *opts, Error **errp)
goto exit;
}
- rbd_opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
- qemu_opts_absorb_qdict(rbd_opts, options, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
- ret = -EINVAL;
- goto exit;
- }
-
- pool = qemu_opt_get(rbd_opts, "pool");
- conf = qemu_opt_get(rbd_opts, "conf");
- clientname = qemu_opt_get(rbd_opts, "user");
- name = qemu_opt_get(rbd_opts, "image");
- keypairs = qemu_opt_get(rbd_opts, "=keyvalue-pairs");
+ pool = qdict_get_try_str(options, "pool");
+ conf = qdict_get_try_str(options, "conf");
+ clientname = qdict_get_try_str(options, "user");
+ name = qdict_get_try_str(options, "image");
+ keypairs = qdict_get_try_str(options, "=keyvalue-pairs");
ret = rados_create(&cluster, clientname);
if (ret < 0) {
@@ -470,7 +461,6 @@ shutdown:
exit:
QDECREF(options);
- qemu_opts_del(rbd_opts);
return ret;
}