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