qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] dump: let dump_error printf the error reason


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PATCH] dump: let dump_error printf the error reason
Date: Wed, 27 Aug 2014 09:18:27 -0400

On Wed, 27 Aug 2014 19:18:53 +0800
zhanghailiang <address@hidden> wrote:

> The second parameter of dump_error is unused, but one purpose of
> using this function is to report the error info.
> 
> Signed-off-by: zhanghailiang <address@hidden>
> ---
>  dump.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/dump.c b/dump.c
> index 71d3e94..0f44e9d 100644
> --- a/dump.c
> +++ b/dump.c
> @@ -83,6 +83,9 @@ static int dump_cleanup(DumpState *s)
>  
>  static void dump_error(DumpState *s, const char *reason)
>  {
> +    if (reason) {
> +        error_report("%s", reason);
> +    }
>      dump_cleanup(s);
>  }
>  

Good catch, but error_report() will report the error only to the user. This
is QMP code, so we have to use the Error API.

I think that the best way to solve this is to make dump_error() fill an
Error object (eg. by calling error_setg()) and then returning it after
the call to dump_cleanup(). Of course that you will have to change _all_
code paths calling dump_error() to propagate the error up.

For more information on this, please read docs/writing-qmp-commands.txt.
You can also take a look at simple commands doing error propagation, like
qmp_cont() or qmp_block_passwd().



reply via email to

[Prev in Thread] Current Thread [Next in Thread]