[libvirt] [PATCH 1/9] fdstream: separate out virCommandPtr cleanup
Michal Privoznik
mprivozn at redhat.com
Mon May 2 08:48:04 UTC 2016
On 25.04.2016 20:46, Cole Robinson wrote:
> Let's us de-nest some of the logic, and will simplify upcoming
> patches
> ---
> src/fdstream.c | 73 +++++++++++++++++++++++++++++++++-------------------------
> 1 file changed, 42 insertions(+), 31 deletions(-)
>
> diff --git a/src/fdstream.c b/src/fdstream.c
> index a6a0fbe..681b90e 100644
> --- a/src/fdstream.c
> +++ b/src/fdstream.c
> @@ -240,6 +240,46 @@ virFDStreamAddCallback(virStreamPtr st,
> return ret;
> }
>
> +static int
> +virFDStreamCloseCommand(struct virFDStreamData *fdst)
> +{
> + char buf[1024];
> + ssize_t len;
> + int status;
> + int ret = -1;
> +
> + if (!fdst->cmd)
> + return 0;
> +
> + if ((len = saferead(fdst->errfd, buf, sizeof(buf)-1)) < 0)
> + buf[0] = '\0';
> + else
> + buf[len] = '\0';
> +
> + virCommandRawStatus(fdst->cmd);
> + if (virCommandWait(fdst->cmd, &status) < 0)
> + goto error;
> +
> + if (status != 0) {
> + if (buf[0] != '\0') {
> + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", buf);
> + } else if (WIFEXITED(status)) {
> + virReportError(VIR_ERR_INTERNAL_ERROR,
> + _("I/O helper exited with status %d"),
> + WEXITSTATUS(status));
> + } else {
> + virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> + _("I/O helper exited abnormally"));
> + }
> + goto error;
> + }
> +
> + ret = 0;
> + error:
Just a small nit, we tend to name 'cleanup' labels that are used in both
successful and unsuccessful return paths. So this should be 'cleanup' to
follow our style.
> + virCommandFree(fdst->cmd);
> + fdst->cmd = NULL;
> + return ret;
> +}
Michal
More information about the libvir-list
mailing list