qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 02/20] nbd: correctly propagate errors


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH 02/20] nbd: correctly propagate errors
Date: Mon, 10 Feb 2014 09:24:03 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

Il 10/02/2014 08:38, Fam Zheng ha scritto:
>      if (s->client.is_unix) {
> -        sock = unix_socket_outgoing(qemu_opt_get(s->socket_opts, "path"));
> +        sock = unix_connect(qemu_opt_get(s->socket_opts, "path"), errp);
Why not use unix_connect_opts like below?

Right!

>      } else {
> -        sock = tcp_socket_outgoing_opts(s->socket_opts);
> +        sock = inet_connect_opts(s->socket_opts, errp, NULL, NULL);
>          if (sock >= 0) {
>              socket_set_nodelay(sock);
>          }
> @@ -255,17 +251,19 @@ static int nbd_open(BlockDriverState *bs, QDict 
*options, int flags,
>      BDRVNBDState *s = bs->opaque;
>      char *export = NULL;
>      int result, sock;
> +    Error *local_err = NULL;
>
>      /* Pop the config into our state object. Exit if invalid. */
> -    result = nbd_config(s, options, &export);
> -    if (result != 0) {
> -        return result;
> +    nbd_config(s, options, &export, &local_err);
> +    if (local_err) {
Isn't error_is_set() better here?

No, error_is_set(&foo) is the same as foo != NULL.

So we use error_is_set only with Error**, which really should never happen because you miss errors if the errp is NULL. :)

Paolo

> +        error_propagate(errp, local_err);
> +        return -EINVAL;
>      }




reply via email to

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