From: Anthony Liguori <aliguori@us.ibm.com>
To: Markus Armbruster <armbru@redhat.com>,
Luiz Capitulino <lcapitulino@redhat.com>
Cc: kwolf@redhat.com, pbonzini@redhat.com, eblake@redhat.com,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 12/27] hmp: hmp_change(): don't use error_get_field()
Date: Wed, 01 Aug 2012 07:49:27 -0500 [thread overview]
Message-ID: <87mx2ezsiw.fsf@codemonkey.ws> (raw)
In-Reply-To: <877gtivlav.fsf@blackfin.pond.sub.org>
Markus Armbruster <armbru@redhat.com> writes:
> Luiz Capitulino <lcapitulino@redhat.com> writes:
>
>> Use the 'device' passed by the user and call qmp_query_block() to
>> get the 'filename' info.
>>
>> error_get_field() is going to be dropped by a future commit.
>>
>> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
>> ---
>> hmp.c | 37 ++++++++++++++++++++++++++++---------
>> 1 file changed, 28 insertions(+), 9 deletions(-)
>>
>> diff --git a/hmp.c b/hmp.c
>> index a906f8a..435c9cd 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -783,17 +783,35 @@ static void hmp_change_read_arg(Monitor *mon, const char *password,
>> static void cb_hmp_change_bdrv_pwd(Monitor *mon, const char *password,
>> void *opaque)
>> {
>> - Error *encryption_err = opaque;
>> + char *device = opaque;
>> Error *err = NULL;
>> - const char *device;
>> -
>> - device = error_get_field(encryption_err, "device");
>>
>> qmp_block_passwd(device, password, &err);
>> hmp_handle_error(mon, &err);
>> - error_free(encryption_err);
>>
>> monitor_read_command(mon, 1);
>> + g_free(device);
>> +}
>> +
>> +static char *get_device_file(const char *device)
>> +{
>> + BlockInfoList *bdev_list, *bdev;
>> + char *ret;
>> +
>> + bdev_list = qmp_query_block(NULL);
>> + for (bdev = bdev_list; bdev; bdev = bdev->next) {
>> + if (!strcmp(bdev->value->device, device)) {
>> + break;
>> + }
>> + }
>> +
>> + assert(bdev);
>> + assert(bdev->value->has_inserted);
>> +
>> + ret = g_strdup(bdev->value->inserted->file);
>> + qapi_free_BlockInfoList(bdev_list);
>> +
>> + return ret;
>> }
>>
>> void hmp_change(Monitor *mon, const QDict *qdict)
>> @@ -814,9 +832,9 @@ void hmp_change(Monitor *mon, const QDict *qdict)
>>
>> qmp_change(device, target, !!arg, arg, &err);
>> if (error_is_type(err, QERR_DEVICE_ENCRYPTED)) {
>> - monitor_printf(mon, "%s (%s) is encrypted.\n",
>> - error_get_field(err, "device"),
>> - error_get_field(err, "filename"));
>> + char *filename = get_device_file(device);
>
> Elsewhere, we use bdrv_get_encrypted_filename(), which does the right
> thing for encrypted backing files. Why is that not necessary here?
>
> Why not simply bdrv_get_encrypted_filename(bdrv_find(device))?
Those are not QMP functions. hmp.c is only allowed to use QMP interfaces.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2012-08-01 12:50 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-27 21:31 [Qemu-devel] [RFC 00/27]: add new error format Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 01/27] monitor: drop unused monitor debug code Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 02/27] qerror: QERR_AMBIGUOUS_PATH: drop %(object) from human msg Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 03/27] qerror: QERR_DEVICE_ENCRYPTED: add filename info to " Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 04/27] qerror: reduce public exposure Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 05/27] qerror: drop qerror_abort() Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 06/27] qerror: QError: drop file, linenr, func Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 07/27] qerror: qerror_format(): return an allocated string Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 08/27] qerror: don't delay error message construction Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 09/27] error: " Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 10/27] qmp: query-block: add 'valid_encryption_key' field Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 11/27] hmp: hmp_cont(): don't rely on QERR_DEVICE_ENCRYPTED Luiz Capitulino
2012-08-01 11:37 ` Markus Armbruster
2012-08-01 13:47 ` Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 12/27] hmp: hmp_change(): don't use error_get_field() Luiz Capitulino
2012-08-01 12:39 ` Markus Armbruster
2012-08-01 12:49 ` Anthony Liguori [this message]
2012-08-01 13:51 ` Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 13/27] error: error_is_type(): " Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 14/27] error: drop functions used to get error data Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 15/27] block: block_int: include qerror.h Luiz Capitulino
2012-08-01 12:42 ` Markus Armbruster
2012-08-01 13:58 ` Luiz Capitulino
2012-08-02 15:59 ` Markus Armbruster
2012-07-27 21:31 ` [Qemu-devel] [PATCH 16/27] hmp: hmp.h: include qdict.h Luiz Capitulino
2012-08-01 12:42 ` Markus Armbruster
2012-07-27 21:31 ` [Qemu-devel] [PATCH 17/27] qapi: qapi-types.h: don't include qapi/qapi-types-core.h Luiz Capitulino
2012-07-27 21:31 ` [Qemu-devel] [PATCH 18/27] qapi: generate correct enum names for camel case enums Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 19/27] qapi: don't convert enum strings to lowercase Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 20/27] qapi-schema: add ErrorClass enum Luiz Capitulino
2012-07-28 14:42 ` Eric Blake
2012-07-27 21:32 ` [Qemu-devel] [PATCH 21/27] qerror: qerror_table: don't use C99 struct initializers Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 22/27] error, qerror: add ErrorClass argument to error functions Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 23/27] qerror: use ErrorClass for QERR_ macro Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 24/27] qmp: switch to the new error format on the wire Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 25/27] qapi: qapi.py: allow the "'" character be escaped Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 26/27] error, qerror: pass desc string to error calls Luiz Capitulino
2012-08-01 11:37 ` Amos Kong
2012-08-01 13:31 ` Luiz Capitulino
2012-07-27 21:32 ` [Qemu-devel] [PATCH 27/27] qerror: drop qerror_table and qerror_format() Luiz Capitulino
2012-07-31 14:44 ` [Qemu-devel] [RFC 00/27]: add new error format Luiz Capitulino
2012-08-01 11:33 ` Amos Kong
2012-08-01 13:29 ` Luiz Capitulino
2012-08-02 2:31 ` Amos Kong
2012-08-02 13:31 ` Luiz Capitulino
2012-08-06 6:35 ` Amos Kong
2012-08-06 13:01 ` Luiz Capitulino
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=87mx2ezsiw.fsf@codemonkey.ws \
--to=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@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.