From 0f5e3f136f090fd8ec671694de222bc1636bbe45 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Wed, 23 Jan 2013 12:19:15 +0000 Subject: [PATCH] Initialize qemuImageBinary path at startup --- src/qemu/qemu_conf.h | 2 +- src/qemu/qemu_domain.c | 11 +++-------- src/qemu/qemu_driver.c | 3 +++ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index 0000b53d96..60c410940e 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -177,7 +177,7 @@ struct _virQEMUDriver { /* Immutable pointer, self-locking APIs */ virDomainObjListPtr domains; - /* Lazy-load on first use. Unsafe. XXX */ + /* Immutable pointer */ char *qemuImgBinary; /* Immutable pointer, lockless APIs. Pointless abstraction */ diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index cb031d8d22..5bf0ab002a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1612,14 +1612,9 @@ cleanup: const char * qemuFindQemuImgBinary(virQEMUDriverPtr driver) { - if (!driver->qemuImgBinary) { - driver->qemuImgBinary = virFindFileInPath("kvm-img"); - if (!driver->qemuImgBinary) - driver->qemuImgBinary = virFindFileInPath("qemu-img"); - if (!driver->qemuImgBinary) - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("unable to find kvm-img or qemu-img")); - } + if (!driver->qemuImgBinary) + virReportError(VIR_ERR_INTERNAL_ERROR, + "%s", _("unable to find kvm-img or qemu-img")); return driver->qemuImgBinary; } diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 149558fdc2..979a027b3f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -738,6 +738,9 @@ qemuStartup(bool privileged, virStrerror(-rc, ebuf, sizeof(ebuf))); } + qemu_driver->qemuImgBinary = virFindFileInPath("kvm-img"); + if (!qemu_driver->qemuImgBinary) + qemu_driver->qemuImgBinary = virFindFileInPath("qemu-img"); if (!(qemu_driver->lockManager = virLockManagerPluginNew(cfg->lockManagerName ? -- 2.47.2