All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Max Reitz <mreitz@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, jdurgin@redhat.com,
	jcody@redhat.com
Subject: Re: [Qemu-devel] [PATCH RFC v3 for-2.9 07/11] rbd: Clean up qemu_rbd_create()'s detour through QemuOpts
Date: Mon, 27 Mar 2017 20:27:04 +0200	[thread overview]
Message-ID: <87o9wmeft3.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <c0b92f66-8e3b-e419-359b-a6b0f986a03d@redhat.com> (Max Reitz's message of "Mon, 27 Mar 2017 18:42:53 +0200")

Max Reitz <mreitz@redhat.com> writes:

> On 27.03.2017 15:26, Markus Armbruster wrote:
>> 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>
>> ---
>>  block/rbd.c | 20 +++++---------------
>>  1 file changed, 5 insertions(+), 15 deletions(-)
>> 
>> diff --git a/block/rbd.c b/block/rbd.c
>> index b2afe07..cf0bab0 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_str(options, "pool");
>> +    conf       = qdict_get_str(options, "conf");
>> +    clientname = qdict_get_str(options, "user");
>> +    name       = qdict_get_str(options, "image");
>> +    keypairs   = qdict_get_str(options, "=keyvalue-pairs");
>
> This assumes that all of these options are given which they are not
> necessarily:
>
> $ ./qemu-img create -f rbd rbd:blub/ 1M
> Formatting 'rbd:blub/', fmt=rbd size=1048576
> [1]    27387 segmentation fault (core dumped)  ./qemu-img create -f rbd
> rbd:blub/ 1M
>
> qdict_get_try_str() would probably be better.

Yes, will fix.  I've fallen into this trap before...

  reply	other threads:[~2017-03-27 18:27 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-27 13:26 [Qemu-devel] [PATCH RFC v3 for-2.9 00/11] rbd: Clean up API and code Markus Armbruster
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 01/11] rbd: Reject -blockdev server.*.{numeric, to, ipv4, ipv6} Markus Armbruster
2017-03-27 16:03   ` Max Reitz
2017-03-27 19:56   ` Jeff Cody
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 02/11] rbd: Fix to cleanly reject -drive without pool or image Markus Armbruster
2017-03-27 16:10   ` Max Reitz
2017-03-27 16:12     ` Max Reitz
2017-03-27 18:23       ` Markus Armbruster
2017-03-27 18:58         ` Markus Armbruster
2017-03-27 21:33           ` Jeff Cody
2017-03-28  7:54             ` Markus Armbruster
2017-03-28 11:56               ` Jeff Cody
2017-03-28 12:16                 ` Jeff Cody
2017-03-27 21:34   ` Jeff Cody
2017-03-28  7:31     ` Markus Armbruster
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 03/11] rbd: Don't limit length of parameter values Markus Armbruster
2017-03-27 16:22   ` Max Reitz
2017-03-28  2:12   ` Jeff Cody
2017-03-28  8:14     ` Markus Armbruster
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 04/11] rbd: Clean up after the previous commit Markus Armbruster
2017-03-27 16:27   ` Max Reitz
2017-03-28  2:13   ` Jeff Cody
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 05/11] rbd: Don't accept -drive driver=rbd, keyvalue-pairs= Markus Armbruster
2017-03-27 16:29   ` Max Reitz
2017-03-27 18:26     ` Markus Armbruster
2017-03-28  2:15   ` Jeff Cody
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 06/11] rbd: Clean up runtime_opts, fix -drive to reject filename Markus Armbruster
2017-03-27 16:38   ` Max Reitz
2017-03-28  2:16   ` Jeff Cody
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 07/11] rbd: Clean up qemu_rbd_create()'s detour through QemuOpts Markus Armbruster
2017-03-27 16:42   ` Max Reitz
2017-03-27 18:27     ` Markus Armbruster [this message]
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 08/11] rbd: Revert -blockdev and -drive parameter auth-supported Markus Armbruster
2017-03-27 16:51   ` Max Reitz
2017-03-27 17:03   ` Eric Blake
2017-03-27 18:31     ` Markus Armbruster
2017-03-27 19:00       ` Eric Blake
2017-03-27 19:14         ` Markus Armbruster
2017-03-27 19:27           ` Eric Blake
2017-03-27 19:30   ` Eric Blake
2017-03-28  8:24     ` Markus Armbruster
2017-03-28 13:26       ` Eric Blake
2017-03-28  2:23   ` Jeff Cody
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 09/11] rbd: Revert -blockdev parameter password-secret Markus Armbruster
2017-03-27 16:52   ` Max Reitz
2017-03-27 17:10   ` Eric Blake
2017-03-28  2:32   ` Jeff Cody
2017-03-28  3:51     ` Jeff Cody
2017-03-28  7:58       ` Markus Armbruster
2017-04-03 11:37   ` Daniel P. Berrange
2017-04-03 12:42     ` Max Reitz
2017-04-03 13:04       ` Daniel P. Berrange
2017-04-03 13:06         ` Jeff Cody
2017-04-03 13:06         ` Max Reitz
2017-04-11 13:11     ` Markus Armbruster
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 10/11] Revert "rbd: add support for getting password from QCryptoSecret object" Markus Armbruster
2017-03-27 17:15   ` Eric Blake
2017-03-27 18:36     ` Markus Armbruster
2017-03-27 13:26 ` [Qemu-devel] [PATCH RFC v3 for-2.9 11/11] rbd: Fix bugs around -drive parameter "server" Markus Armbruster
2017-03-27 17:25   ` Eric Blake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o9wmeft3.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=jcody@redhat.com \
    --cc=jdurgin@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.