|
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; > }
[Prev in Thread] | Current Thread | [Next in Thread] |