[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 5/8] qemu-img: img_create(): use Error object
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 5/8] qemu-img: img_create(): use Error object |
Date: |
Tue, 23 Oct 2012 11:58:25 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) |
Kevin Wolf <address@hidden> writes:
> Am 18.10.2012 15:49, schrieb Luiz Capitulino:
>> On Thu, 18 Oct 2012 14:11:40 +0200
>> Kevin Wolf <address@hidden> wrote:
>>
>>> Am 17.10.2012 21:35, schrieb Luiz Capitulino:
>>>> Signed-off-by: Luiz Capitulino <address@hidden>
>>>> ---
>>>> qemu-img.c | 10 +++++++---
>>>> 1 file changed, 7 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/qemu-img.c b/qemu-img.c
>>>> index 12fb6c2..dfde588 100644
>>>> --- a/qemu-img.c
>>>> +++ b/qemu-img.c
>>>> @@ -302,6 +302,7 @@ static int img_create(int argc, char **argv)
>>>> const char *base_filename = NULL;
>>>> char *options = NULL;
>>>> QEMUOptionParameter *params = NULL;
>>>> + Error *local_err = NULL;
>>>>
>>>> for(;;) {
>>>> c = getopt(argc, argv, "F:b:f:he6o:");
>>>> @@ -362,9 +363,12 @@ static int img_create(int argc, char **argv)
>>>> goto out;
>>>> }
>>>>
>>>> - ret = bdrv_img_create(filename, fmt, base_filename, base_fmt,
>>>> - options, img_size, BDRV_O_FLAGS, ¶ms, NULL);
>>>> - if (ret < 0) {
>>>> + bdrv_img_create(filename, fmt, base_filename, base_fmt,
>>>> + options, img_size, BDRV_O_FLAGS, ¶ms, &local_err);
>>>> + if (error_is_set(&local_err)) {
>>>> + fprintf(stderr, "qemu-img: %s\n", error_get_pretty(local_err));
>>>
>>> This should use error_report() instead of adding the "qemu-img:" manually.
>>
>> If you want to do it for consistency with the current code then ok,
>> I'll do it for v2. But I disagree qemu-img should keep using error_report(),
>> printing to hmp for example is something beyond the interests of a tool like
>> qemu-img.
>
> qemu-img doesn't have an HMP monitor, so it doesn't hurt either. If you
> want to replace it, replace it with a copy of qemu-error.c that only
> removes the monitor_vprintf() case. That is, in particular, leave all of
> the loc_*() functionality there, because this is something that is meant
> for use in command line parsers.
Strongly agreed on use of error_report(). Buys us uniform error
messages that can point to the location causing the error. The fact
that error_report() does the right thing in monitor context is detail.
I don't see why purging a few monitor references from tools is worth
copying the file. Stubbing out cur_mon and monitor_vprintf() in tools
is just fine, in my opinion.
> That qemu-img doesn't use these functions yet should be fixed. It has
> some good use cases for them.
Indeed.
[Qemu-devel] [PATCH 7/8] qmp: qmp_transaction(): pass Error object to bdrv_img_create(), Luiz Capitulino, 2012/10/17
[Qemu-devel] [PATCH 6/8] qemu-img: img_create(): simplify, Luiz Capitulino, 2012/10/17
[Qemu-devel] [PATCH 8/8] block: bdrv_img_create(): drop unused error handling code, Luiz Capitulino, 2012/10/17