From: Michal Privoznik Date: Mon, 27 Aug 2012 11:49:21 +0000 (+0200) Subject: qemu_agent: Switch to virReportSystemError() on system error X-Git-Tag: v0.10.0~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e0cc6306aa7db2d3e55193aff21684c70b67ec6;p=thirdparty%2Flibvirt.git qemu_agent: Switch to virReportSystemError() on system error Currently, if a syscall in qemu_agent.c fails we report an internal error even though we should be reporting a system error. --- diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index ba29783975..aaff9fc612 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -191,14 +191,16 @@ qemuAgentOpenUnix(const char *monitor, pid_t cpid, bool *inProgress) } if (virSetNonBlock(monfd) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("Unable to put monitor into non-blocking mode")); + virReportSystemError(errno, "%s", + _("Unable to put monitor " + "into non-blocking mode")); goto error; } if (virSetCloseExec(monfd) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("Unable to set monitor close-on-exec flag")); + virReportSystemError(errno, "%s", + _("Unable to set monitor " + "close-on-exec flag")); goto error; } @@ -256,14 +258,14 @@ qemuAgentOpenPty(const char *monitor) int monfd; if ((monfd = open(monitor, O_RDWR | O_NONBLOCK)) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Unable to open monitor path %s"), monitor); + virReportSystemError(errno, + _("Unable to open monitor path %s"), monitor); return -1; } if (virSetCloseExec(monfd) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("Unable to set monitor close-on-exec flag")); + virReportSystemError(errno, "%s", + _("Unable to set monitor close-on-exec flag")); goto error; } @@ -733,14 +735,14 @@ qemuAgentOpen(virDomainObjPtr vm, return NULL; if (virMutexInit(&mon->lock) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("cannot initialize monitor mutex")); + virReportSystemError(errno, "%s", + _("cannot initialize monitor mutex")); VIR_FREE(mon); return NULL; } if (virCondInit(&mon->notify) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("cannot initialize monitor condition")); + virReportSystemError(errno, "%s", + _("cannot initialize monitor condition")); virMutexDestroy(&mon->lock); VIR_FREE(mon); return NULL; @@ -884,8 +886,8 @@ static int qemuAgentSend(qemuAgentPtr mon, _("Guest agent not available for now")); ret = -2; } else { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Unable to wait on monitor condition")); + virReportSystemError(errno, "%s", + _("Unable to wait on monitor condition")); } goto cleanup; }