[libvirt] [PATCH v2 09/13] qemu: change qemuDomainTaint APIs to accept qemuDomainLogContextPtr
John Ferlan
jferlan at redhat.com
Wed Nov 18 23:49:44 UTC 2015
On 11/12/2015 12:19 PM, Daniel P. Berrange wrote:
> The qemuDomainTaint APIs currently expect to be passed a log file
> descriptor. Change them to instead use a qemuDomainLogContextPtr
> to hide the implementation details.
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
> src/qemu/qemu_domain.c | 96 ++++++++++++++++++-------------------------------
> src/qemu/qemu_domain.h | 15 +++-----
> src/qemu/qemu_driver.c | 10 +++---
> src/qemu/qemu_process.c | 4 +--
> 4 files changed, 47 insertions(+), 78 deletions(-)
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index f3bb8d4..75f78fe 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -2107,9 +2107,10 @@ qemuDomainDefFormatLive(virQEMUDriverPtr driver,
> void qemuDomainObjTaint(virQEMUDriverPtr driver,
> virDomainObjPtr obj,
> virDomainTaintFlags taint,
> - int logFD)
> + qemuDomainLogContextPtr logCtxt)
> {
> virErrorPtr orig_err = NULL;
> + bool closeLog = false;
>
> if (virDomainObjTaint(obj, taint)) {
> char uuidstr[VIR_UUID_STRING_BUFLEN];
> @@ -2125,11 +2126,23 @@ void qemuDomainObjTaint(virQEMUDriverPtr driver,
> * preserve original error, and clear any error that
> * is raised */
> orig_err = virSaveLastError();
> - if (qemuDomainAppendLog(driver, obj, logFD,
> - "Domain id=%d is tainted: %s\n",
> - obj->def->id,
> - virDomainTaintTypeToString(taint)) < 0)
> + if (logCtxt == NULL) {
> + logCtxt = qemuDomainLogContextNew(driver, obj,
> + QEMU_DOMAIN_LOG_CONTEXT_MODE_ATTACH);
> + if (!logCtxt) {
> + VIR_WARN("Unable to open domainlog");
Coverity found - leaking orig_err
> + return;
> + }
> + closeLog = true;
> + }
> +
> + if (qemuDomainLogContextWrite(logCtxt,
> + "Domain id=%d is tainted: %s\n",
> + obj->def->id,
> + virDomainTaintTypeToString(taint)) < 0)
> virResetLastError();
> + if (closeLog)
> + qemuDomainLogContextFree(logCtxt);
> if (orig_err) {
> virSetError(orig_err);
> virFreeError(orig_err);
> @@ -2140,7 +2153,7 @@ void qemuDomainObjTaint(virQEMUDriverPtr driver,
>
[...]
ACK with the adjustment
John
More information about the libvir-list
mailing list