mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
libxl: Use g_autofree for char* where easily possible
All of these strings are allocated once, freed once, and are never returned out of the function where they are declared. Signed-off-by: Jim Fehlig <jfehlig@suse.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
66611bc0df
commit
6f8a8671cc
@ -769,7 +769,7 @@ libxlDomainGetEmulatorType(const virDomainDef *def)
|
|||||||
{
|
{
|
||||||
int ret = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
|
int ret = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
char *output = NULL;
|
g_autofree char *output = NULL;
|
||||||
|
|
||||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||||
if (def->emulator) {
|
if (def->emulator) {
|
||||||
@ -790,7 +790,6 @@ libxlDomainGetEmulatorType(const virDomainDef *def)
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(output);
|
|
||||||
virCommandFree(cmd);
|
virCommandFree(cmd);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -748,7 +748,7 @@ libxlDomainSaveImageOpen(libxlDriverPrivatePtr driver,
|
|||||||
int fd;
|
int fd;
|
||||||
virDomainDefPtr def = NULL;
|
virDomainDefPtr def = NULL;
|
||||||
libxlSavefileHeader hdr;
|
libxlSavefileHeader hdr;
|
||||||
char *xml = NULL;
|
g_autofree char *xml = NULL;
|
||||||
|
|
||||||
if ((fd = virFileOpenAs(from, O_RDONLY, 0, -1, -1, 0)) < 0) {
|
if ((fd = virFileOpenAs(from, O_RDONLY, 0, -1, -1, 0)) < 0) {
|
||||||
virReportSystemError(-fd,
|
virReportSystemError(-fd,
|
||||||
@ -792,15 +792,12 @@ libxlDomainSaveImageOpen(libxlDriverPrivatePtr driver,
|
|||||||
VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE)))
|
VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
VIR_FREE(xml);
|
|
||||||
|
|
||||||
*ret_def = def;
|
*ret_def = def;
|
||||||
*ret_hdr = hdr;
|
*ret_hdr = hdr;
|
||||||
|
|
||||||
return fd;
|
return fd;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
VIR_FREE(xml);
|
|
||||||
virDomainDefFree(def);
|
virDomainDefFree(def);
|
||||||
VIR_FORCE_CLOSE(fd);
|
VIR_FORCE_CLOSE(fd);
|
||||||
return -1;
|
return -1;
|
||||||
@ -951,7 +948,7 @@ libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
|
|||||||
g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
|
g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
|
||||||
g_autoptr(GDateTime) now = g_date_time_new_now_local();
|
g_autoptr(GDateTime) now = g_date_time_new_now_local();
|
||||||
g_autofree char *nowstr = NULL;
|
g_autofree char *nowstr = NULL;
|
||||||
char *dumpfile = NULL;
|
g_autofree char *dumpfile = NULL;
|
||||||
|
|
||||||
nowstr = g_date_time_format(now, "%Y-%m-%d-%H:%M:%S");
|
nowstr = g_date_time_format(now, "%Y-%m-%d-%H:%M:%S");
|
||||||
|
|
||||||
@ -963,7 +960,6 @@ libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
|
|||||||
libxl_domain_core_dump(cfg->ctx, vm->def->id, dumpfile, NULL);
|
libxl_domain_core_dump(cfg->ctx, vm->def->id, dumpfile, NULL);
|
||||||
virObjectLock(vm);
|
virObjectLock(vm);
|
||||||
|
|
||||||
VIR_FREE(dumpfile);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1262,8 +1258,8 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
|
|||||||
libxlSavefileHeader hdr;
|
libxlSavefileHeader hdr;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
uint32_t domid = 0;
|
uint32_t domid = 0;
|
||||||
char *dom_xml = NULL;
|
g_autofree char *dom_xml = NULL;
|
||||||
char *managed_save_path = NULL;
|
g_autofree char *managed_save_path = NULL;
|
||||||
int managed_save_fd = -1;
|
int managed_save_fd = -1;
|
||||||
libxlDomainObjPrivatePtr priv = vm->privateData;
|
libxlDomainObjPrivatePtr priv = vm->privateData;
|
||||||
g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
|
g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
|
||||||
@ -1271,7 +1267,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
|
|||||||
libxl_asyncprogress_how aop_console_how;
|
libxl_asyncprogress_how aop_console_how;
|
||||||
libxl_domain_restore_params params;
|
libxl_domain_restore_params params;
|
||||||
unsigned int hostdev_flags = VIR_HOSTDEV_SP_PCI;
|
unsigned int hostdev_flags = VIR_HOSTDEV_SP_PCI;
|
||||||
char *config_json = NULL;
|
g_autofree char *config_json = NULL;
|
||||||
|
|
||||||
#ifdef LIBXL_HAVE_PVUSB
|
#ifdef LIBXL_HAVE_PVUSB
|
||||||
hostdev_flags |= VIR_HOSTDEV_SP_USB;
|
hostdev_flags |= VIR_HOSTDEV_SP_USB;
|
||||||
@ -1319,7 +1315,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
|
|||||||
|
|
||||||
vm->hasManagedSave = false;
|
vm->hasManagedSave = false;
|
||||||
}
|
}
|
||||||
VIR_FREE(managed_save_path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainObjSetDefTransient(driver->xmlopt, vm, NULL) < 0)
|
if (virDomainObjSetDefTransient(driver->xmlopt, vm, NULL) < 0)
|
||||||
@ -1513,9 +1508,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
libxl_domain_config_dispose(&d_config);
|
libxl_domain_config_dispose(&d_config);
|
||||||
VIR_FREE(config_json);
|
|
||||||
VIR_FREE(dom_xml);
|
|
||||||
VIR_FREE(managed_save_path);
|
|
||||||
virDomainDefFree(def);
|
virDomainDefFree(def);
|
||||||
VIR_FORCE_CLOSE(managed_save_fd);
|
VIR_FORCE_CLOSE(managed_save_fd);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -533,7 +533,7 @@ libxlDriverShouldLoad(bool privileged)
|
|||||||
|
|
||||||
if (virFileExists(HYPERVISOR_CAPABILITIES)) {
|
if (virFileExists(HYPERVISOR_CAPABILITIES)) {
|
||||||
int status;
|
int status;
|
||||||
char *output = NULL;
|
g_autofree char *output = NULL;
|
||||||
/*
|
/*
|
||||||
* Don't load if not running on a Xen control domain (dom0). It is not
|
* Don't load if not running on a Xen control domain (dom0). It is not
|
||||||
* sufficient to check for the file to exist as any guest can mount
|
* sufficient to check for the file to exist as any guest can mount
|
||||||
@ -542,7 +542,6 @@ libxlDriverShouldLoad(bool privileged)
|
|||||||
status = virFileReadAll(HYPERVISOR_CAPABILITIES, 10, &output);
|
status = virFileReadAll(HYPERVISOR_CAPABILITIES, 10, &output);
|
||||||
if (status >= 0)
|
if (status >= 0)
|
||||||
status = strncmp(output, "control_d", 9);
|
status = strncmp(output, "control_d", 9);
|
||||||
VIR_FREE(output);
|
|
||||||
if (status) {
|
if (status) {
|
||||||
VIR_INFO("No Xen capabilities detected, probably not running "
|
VIR_INFO("No Xen capabilities detected, probably not running "
|
||||||
"in a Xen Dom0. Disabling libxenlight driver");
|
"in a Xen Dom0. Disabling libxenlight driver");
|
||||||
@ -1819,7 +1818,7 @@ libxlDoDomainSave(libxlDriverPrivatePtr driver,
|
|||||||
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
|
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
|
||||||
libxlSavefileHeader hdr;
|
libxlSavefileHeader hdr;
|
||||||
virObjectEventPtr event = NULL;
|
virObjectEventPtr event = NULL;
|
||||||
char *xml = NULL;
|
g_autofree char *xml = NULL;
|
||||||
uint32_t xml_len;
|
uint32_t xml_len;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@ -1889,7 +1888,6 @@ libxlDoDomainSave(libxlDriverPrivatePtr driver,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(xml);
|
|
||||||
if (VIR_CLOSE(fd) < 0)
|
if (VIR_CLOSE(fd) < 0)
|
||||||
virReportSystemError(errno, "%s", _("cannot close file"));
|
virReportSystemError(errno, "%s", _("cannot close file"));
|
||||||
virObjectEventStateQueue(driver->domainEventState, event);
|
virObjectEventStateQueue(driver->domainEventState, event);
|
||||||
@ -2117,7 +2115,7 @@ libxlDomainManagedSave(virDomainPtr dom, unsigned int flags)
|
|||||||
{
|
{
|
||||||
libxlDriverPrivatePtr driver = dom->conn->privateData;
|
libxlDriverPrivatePtr driver = dom->conn->privateData;
|
||||||
virDomainObjPtr vm = NULL;
|
virDomainObjPtr vm = NULL;
|
||||||
char *name = NULL;
|
g_autofree char *name = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
@ -2160,7 +2158,6 @@ libxlDomainManagedSave(virDomainPtr dom, unsigned int flags)
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virDomainObjEndAPI(&vm);
|
virDomainObjEndAPI(&vm);
|
||||||
VIR_FREE(name);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2213,7 +2210,7 @@ libxlDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags)
|
|||||||
libxlDriverPrivatePtr driver = dom->conn->privateData;
|
libxlDriverPrivatePtr driver = dom->conn->privateData;
|
||||||
virDomainObjPtr vm = NULL;
|
virDomainObjPtr vm = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
char *name = NULL;
|
g_autofree char *name = NULL;
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
@ -2231,7 +2228,6 @@ libxlDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags)
|
|||||||
vm->hasManagedSave = false;
|
vm->hasManagedSave = false;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(name);
|
|
||||||
virDomainObjEndAPI(&vm);
|
virDomainObjEndAPI(&vm);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -2917,7 +2913,7 @@ libxlDomainUndefineFlags(virDomainPtr dom,
|
|||||||
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
|
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
|
||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
virObjectEventPtr event = NULL;
|
virObjectEventPtr event = NULL;
|
||||||
char *name = NULL;
|
g_autofree char *name = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_UNDEFINE_MANAGED_SAVE, -1);
|
virCheckFlags(VIR_DOMAIN_UNDEFINE_MANAGED_SAVE, -1);
|
||||||
@ -2967,7 +2963,6 @@ libxlDomainUndefineFlags(virDomainPtr dom,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(name);
|
|
||||||
virDomainObjEndAPI(&vm);
|
virDomainObjEndAPI(&vm);
|
||||||
virObjectEventStateQueue(driver->domainEventState, event);
|
virObjectEventStateQueue(driver->domainEventState, event);
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
@ -4518,7 +4513,8 @@ libxlDomainSetAutostart(virDomainPtr dom, int autostart)
|
|||||||
libxlDriverPrivatePtr driver = dom->conn->privateData;
|
libxlDriverPrivatePtr driver = dom->conn->privateData;
|
||||||
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
|
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
|
||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
char *configFile = NULL, *autostartLink = NULL;
|
g_autofree char *configFile = NULL;
|
||||||
|
g_autofree char *autostartLink = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (!(vm = libxlDomObjFromDomain(dom)))
|
if (!(vm = libxlDomObjFromDomain(dom)))
|
||||||
@ -4577,8 +4573,6 @@ libxlDomainSetAutostart(virDomainPtr dom, int autostart)
|
|||||||
libxlDomainObjEndJob(driver, vm);
|
libxlDomainObjEndJob(driver, vm);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(configFile);
|
|
||||||
VIR_FREE(autostartLink);
|
|
||||||
virDomainObjEndAPI(&vm);
|
virDomainObjEndAPI(&vm);
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
@ -4882,7 +4876,6 @@ libxlDomainGetNumaParameters(virDomainPtr dom,
|
|||||||
virDomainObjPtr vm;
|
virDomainObjPtr vm;
|
||||||
libxl_bitmap nodemap;
|
libxl_bitmap nodemap;
|
||||||
virBitmapPtr nodes = NULL;
|
virBitmapPtr nodes = NULL;
|
||||||
char *nodeset = NULL;
|
|
||||||
int rc, ret = -1;
|
int rc, ret = -1;
|
||||||
size_t i, j;
|
size_t i, j;
|
||||||
|
|
||||||
@ -4915,6 +4908,7 @@ libxlDomainGetNumaParameters(virDomainPtr dom,
|
|||||||
for (i = 0; i < LIBXL_NUMA_NPARAM && i < *nparams; i++) {
|
for (i = 0; i < LIBXL_NUMA_NPARAM && i < *nparams; i++) {
|
||||||
virMemoryParameterPtr param = ¶ms[i];
|
virMemoryParameterPtr param = ¶ms[i];
|
||||||
int numnodes;
|
int numnodes;
|
||||||
|
g_autofree char *nodeset = NULL;
|
||||||
|
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -4981,7 +4975,6 @@ libxlDomainGetNumaParameters(virDomainPtr dom,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(nodeset);
|
|
||||||
virBitmapFree(nodes);
|
virBitmapFree(nodes);
|
||||||
libxl_bitmap_dispose(&nodemap);
|
libxl_bitmap_dispose(&nodemap);
|
||||||
virDomainObjEndAPI(&vm);
|
virDomainObjEndAPI(&vm);
|
||||||
@ -5783,7 +5776,7 @@ libxlNodeDeviceDetachFlags(virNodeDevicePtr dev,
|
|||||||
virPCIDeviceAddress devAddr;
|
virPCIDeviceAddress devAddr;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virNodeDeviceDefPtr def = NULL;
|
virNodeDeviceDefPtr def = NULL;
|
||||||
char *xml = NULL;
|
g_autofree char *xml = NULL;
|
||||||
libxlDriverPrivatePtr driver = dev->conn->privateData;
|
libxlDriverPrivatePtr driver = dev->conn->privateData;
|
||||||
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
|
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
|
||||||
virConnectPtr nodeconn = NULL;
|
virConnectPtr nodeconn = NULL;
|
||||||
@ -5839,7 +5832,6 @@ libxlNodeDeviceDetachFlags(virNodeDevicePtr dev,
|
|||||||
virNodeDeviceDefFree(def);
|
virNodeDeviceDefFree(def);
|
||||||
virObjectUnref(nodedev);
|
virObjectUnref(nodedev);
|
||||||
virObjectUnref(nodeconn);
|
virObjectUnref(nodeconn);
|
||||||
VIR_FREE(xml);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5856,7 +5848,7 @@ libxlNodeDeviceReAttach(virNodeDevicePtr dev)
|
|||||||
virPCIDeviceAddress devAddr;
|
virPCIDeviceAddress devAddr;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virNodeDeviceDefPtr def = NULL;
|
virNodeDeviceDefPtr def = NULL;
|
||||||
char *xml = NULL;
|
g_autofree char *xml = NULL;
|
||||||
libxlDriverPrivatePtr driver = dev->conn->privateData;
|
libxlDriverPrivatePtr driver = dev->conn->privateData;
|
||||||
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
|
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
|
||||||
virConnectPtr nodeconn = NULL;
|
virConnectPtr nodeconn = NULL;
|
||||||
@ -5903,7 +5895,6 @@ libxlNodeDeviceReAttach(virNodeDevicePtr dev)
|
|||||||
virNodeDeviceDefFree(def);
|
virNodeDeviceDefFree(def);
|
||||||
virObjectUnref(nodedev);
|
virObjectUnref(nodedev);
|
||||||
virObjectUnref(nodeconn);
|
virObjectUnref(nodeconn);
|
||||||
VIR_FREE(xml);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5914,7 +5905,7 @@ libxlNodeDeviceReset(virNodeDevicePtr dev)
|
|||||||
virPCIDeviceAddress devAddr;
|
virPCIDeviceAddress devAddr;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virNodeDeviceDefPtr def = NULL;
|
virNodeDeviceDefPtr def = NULL;
|
||||||
char *xml = NULL;
|
g_autofree char *xml = NULL;
|
||||||
libxlDriverPrivatePtr driver = dev->conn->privateData;
|
libxlDriverPrivatePtr driver = dev->conn->privateData;
|
||||||
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
|
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
|
||||||
virConnectPtr nodeconn = NULL;
|
virConnectPtr nodeconn = NULL;
|
||||||
@ -5961,7 +5952,6 @@ libxlNodeDeviceReset(virNodeDevicePtr dev)
|
|||||||
virNodeDeviceDefFree(def);
|
virNodeDeviceDefFree(def);
|
||||||
virObjectUnref(nodedev);
|
virObjectUnref(nodedev);
|
||||||
virObjectUnref(nodeconn);
|
virObjectUnref(nodeconn);
|
||||||
VIR_FREE(xml);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ libvirt_vmessage(xentoollog_logger *logger_in,
|
|||||||
xentoollog_logger_libvirt *lg = (xentoollog_logger_libvirt *)logger_in;
|
xentoollog_logger_libvirt *lg = (xentoollog_logger_libvirt *)logger_in;
|
||||||
FILE *logFile = lg->defaultLogFile;
|
FILE *logFile = lg->defaultLogFile;
|
||||||
char timestamp[VIR_TIME_STRING_BUFLEN];
|
char timestamp[VIR_TIME_STRING_BUFLEN];
|
||||||
char *message = NULL;
|
g_autofree char *message = NULL;
|
||||||
char *start, *end;
|
char *start, *end;
|
||||||
|
|
||||||
VIR_DEBUG("libvirt_vmessage: context='%s' format='%s'", context, format);
|
VIR_DEBUG("libvirt_vmessage: context='%s' format='%s'", context, format);
|
||||||
@ -107,8 +107,6 @@ libvirt_vmessage(xentoollog_logger *logger_in,
|
|||||||
|
|
||||||
fputc('\n', logFile);
|
fputc('\n', logFile);
|
||||||
fflush(logFile);
|
fflush(logFile);
|
||||||
|
|
||||||
VIR_FREE(message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -134,8 +132,7 @@ libxlLoggerPtr
|
|||||||
libxlLoggerNew(const char *logDir, virLogPriority minLevel)
|
libxlLoggerNew(const char *logDir, virLogPriority minLevel)
|
||||||
{
|
{
|
||||||
xentoollog_logger_libvirt logger;
|
xentoollog_logger_libvirt logger;
|
||||||
libxlLoggerPtr logger_out = NULL;
|
g_autofree char *path = NULL;
|
||||||
char *path = NULL;
|
|
||||||
|
|
||||||
switch (minLevel) {
|
switch (minLevel) {
|
||||||
case VIR_LOG_DEBUG:
|
case VIR_LOG_DEBUG:
|
||||||
@ -158,18 +155,12 @@ libxlLoggerNew(const char *logDir, virLogPriority minLevel)
|
|||||||
|
|
||||||
path = g_strdup_printf("%s/libxl-driver.log", logDir);
|
path = g_strdup_printf("%s/libxl-driver.log", logDir);
|
||||||
|
|
||||||
if ((logger.defaultLogFile = fopen(path, "a")) == NULL)
|
if ((logger.defaultLogFile = fopen(path, "a")) == NULL) {
|
||||||
goto error;
|
|
||||||
|
|
||||||
logger_out = XTL_NEW_LOGGER(libvirt, logger);
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
VIR_FREE(path);
|
|
||||||
return logger_out;
|
|
||||||
|
|
||||||
error:
|
|
||||||
virHashFree(logger.files);
|
virHashFree(logger.files);
|
||||||
goto cleanup;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return XTL_NEW_LOGGER(libvirt, logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -188,9 +179,9 @@ libxlLoggerOpenFile(libxlLoggerPtr logger,
|
|||||||
const char *name,
|
const char *name,
|
||||||
const char *domain_config)
|
const char *domain_config)
|
||||||
{
|
{
|
||||||
char *path = NULL;
|
g_autofree char *path = NULL;
|
||||||
FILE *logFile = NULL;
|
FILE *logFile = NULL;
|
||||||
char *domidstr = NULL;
|
g_autofree char *domidstr = NULL;
|
||||||
|
|
||||||
path = g_strdup_printf("%s/%s.log", logger->logDir, name);
|
path = g_strdup_printf("%s/%s.log", logger->logDir, name);
|
||||||
domidstr = g_strdup_printf("%d", id);
|
domidstr = g_strdup_printf("%d", id);
|
||||||
@ -198,7 +189,7 @@ libxlLoggerOpenFile(libxlLoggerPtr logger,
|
|||||||
if (!(logFile = fopen(path, "a"))) {
|
if (!(logFile = fopen(path, "a"))) {
|
||||||
VIR_WARN("Failed to open log file %s: %s",
|
VIR_WARN("Failed to open log file %s: %s",
|
||||||
path, g_strerror(errno));
|
path, g_strerror(errno));
|
||||||
goto cleanup;
|
return;
|
||||||
}
|
}
|
||||||
ignore_value(virHashAddEntry(logger->files, domidstr, logFile));
|
ignore_value(virHashAddEntry(logger->files, domidstr, logFile));
|
||||||
|
|
||||||
@ -207,19 +198,13 @@ libxlLoggerOpenFile(libxlLoggerPtr logger,
|
|||||||
fprintf(logFile, "Domain start: %s\n", domain_config);
|
fprintf(logFile, "Domain start: %s\n", domain_config);
|
||||||
fflush(logFile);
|
fflush(logFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
|
||||||
VIR_FREE(path);
|
|
||||||
VIR_FREE(domidstr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
libxlLoggerCloseFile(libxlLoggerPtr logger, int id)
|
libxlLoggerCloseFile(libxlLoggerPtr logger, int id)
|
||||||
{
|
{
|
||||||
char *domidstr = NULL;
|
g_autofree char *domidstr = NULL;
|
||||||
domidstr = g_strdup_printf("%d", id);
|
domidstr = g_strdup_printf("%d", id);
|
||||||
|
|
||||||
ignore_value(virHashRemoveEntry(logger->files, domidstr));
|
ignore_value(virHashRemoveEntry(logger->files, domidstr));
|
||||||
|
|
||||||
VIR_FREE(domidstr);
|
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ libxlMigrationEatCookie(const char *cookiein,
|
|||||||
libxlMigrationCookiePtr mig = NULL;
|
libxlMigrationCookiePtr mig = NULL;
|
||||||
xmlDocPtr doc = NULL;
|
xmlDocPtr doc = NULL;
|
||||||
xmlXPathContextPtr ctxt = NULL;
|
xmlXPathContextPtr ctxt = NULL;
|
||||||
char *uuidstr = NULL;
|
g_autofree char *uuidstr = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -216,7 +216,6 @@ libxlMigrationEatCookie(const char *cookiein,
|
|||||||
libxlMigrationCookieFree(mig);
|
libxlMigrationCookieFree(mig);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(uuidstr);
|
|
||||||
xmlXPathFreeContext(ctxt);
|
xmlXPathFreeContext(ctxt);
|
||||||
xmlFreeDoc(doc);
|
xmlFreeDoc(doc);
|
||||||
return ret;
|
return ret;
|
||||||
@ -840,7 +839,7 @@ struct _libxlTunnelMigrationThread {
|
|||||||
static void libxlTunnel3MigrationSrcFunc(void *arg)
|
static void libxlTunnel3MigrationSrcFunc(void *arg)
|
||||||
{
|
{
|
||||||
libxlTunnelMigrationThread *data = (libxlTunnelMigrationThread *)arg;
|
libxlTunnelMigrationThread *data = (libxlTunnelMigrationThread *)arg;
|
||||||
char *buffer = NULL;
|
g_autofree char *buffer = NULL;
|
||||||
struct pollfd fds[1];
|
struct pollfd fds[1];
|
||||||
int timeout = -1;
|
int timeout = -1;
|
||||||
|
|
||||||
@ -858,7 +857,7 @@ static void libxlTunnel3MigrationSrcFunc(void *arg)
|
|||||||
continue;
|
continue;
|
||||||
virReportError(errno, "%s",
|
virReportError(errno, "%s",
|
||||||
_("poll failed in libxlTunnel3MigrationSrcFunc"));
|
_("poll failed in libxlTunnel3MigrationSrcFunc"));
|
||||||
goto cleanup;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
@ -874,13 +873,13 @@ static void libxlTunnel3MigrationSrcFunc(void *arg)
|
|||||||
/* Write to dest stream */
|
/* Write to dest stream */
|
||||||
if (virStreamSend(data->st, buffer, nbytes) < 0) {
|
if (virStreamSend(data->st, buffer, nbytes) < 0) {
|
||||||
virStreamAbort(data->st);
|
virStreamAbort(data->st);
|
||||||
goto cleanup;
|
return;
|
||||||
}
|
}
|
||||||
} else if (nbytes < 0) {
|
} else if (nbytes < 0) {
|
||||||
virReportError(errno, "%s",
|
virReportError(errno, "%s",
|
||||||
_("tunnelled migration failed to read from xen side"));
|
_("tunnelled migration failed to read from xen side"));
|
||||||
virStreamAbort(data->st);
|
virStreamAbort(data->st);
|
||||||
goto cleanup;
|
return;
|
||||||
} else {
|
} else {
|
||||||
/* EOF; transferred all data */
|
/* EOF; transferred all data */
|
||||||
break;
|
break;
|
||||||
@ -889,10 +888,6 @@ static void libxlTunnel3MigrationSrcFunc(void *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ignore_value(virStreamFinish(data->st));
|
ignore_value(virStreamFinish(data->st));
|
||||||
|
|
||||||
cleanup:
|
|
||||||
VIR_FREE(buffer);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2102,29 +2102,24 @@ xenFormatCharDev(virConfPtr conf, virDomainDefPtr def,
|
|||||||
static int
|
static int
|
||||||
xenFormatCPUAllocation(virConfPtr conf, virDomainDefPtr def)
|
xenFormatCPUAllocation(virConfPtr conf, virDomainDefPtr def)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
g_autofree char *cpus = NULL;
|
||||||
char *cpus = NULL;
|
|
||||||
|
|
||||||
if (virDomainDefGetVcpus(def) < virDomainDefGetVcpusMax(def) &&
|
if (virDomainDefGetVcpus(def) < virDomainDefGetVcpusMax(def) &&
|
||||||
xenConfigSetInt(conf, "maxvcpus", virDomainDefGetVcpusMax(def)) < 0)
|
xenConfigSetInt(conf, "maxvcpus", virDomainDefGetVcpusMax(def)) < 0)
|
||||||
goto cleanup;
|
return -1;
|
||||||
if (xenConfigSetInt(conf, "vcpus", virDomainDefGetVcpus(def)) < 0)
|
if (xenConfigSetInt(conf, "vcpus", virDomainDefGetVcpus(def)) < 0)
|
||||||
goto cleanup;
|
return -1;
|
||||||
|
|
||||||
if ((def->cpumask != NULL) &&
|
if ((def->cpumask != NULL) &&
|
||||||
((cpus = virBitmapFormat(def->cpumask)) == NULL)) {
|
((cpus = virBitmapFormat(def->cpumask)) == NULL)) {
|
||||||
goto cleanup;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cpus &&
|
if (cpus &&
|
||||||
xenConfigSetString(conf, "cpus", cpus) < 0)
|
xenConfigSetString(conf, "cpus", cpus) < 0)
|
||||||
goto cleanup;
|
return -1;
|
||||||
|
|
||||||
ret = 0;
|
return 0;
|
||||||
|
|
||||||
cleanup:
|
|
||||||
VIR_FREE(cpus);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1373,7 +1373,7 @@ static int
|
|||||||
xenFormatXLCPUID(virConfPtr conf, virDomainDefPtr def)
|
xenFormatXLCPUID(virConfPtr conf, virDomainDefPtr def)
|
||||||
{
|
{
|
||||||
char **cpuid_pairs = NULL;
|
char **cpuid_pairs = NULL;
|
||||||
char *cpuid_string = NULL;
|
g_autofree char *cpuid_string = NULL;
|
||||||
size_t i, j;
|
size_t i, j;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
@ -1431,7 +1431,6 @@ xenFormatXLCPUID(virConfPtr conf, virDomainDefPtr def)
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
g_strfreev(cpuid_pairs);
|
g_strfreev(cpuid_pairs);
|
||||||
VIR_FREE(cpuid_string);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1686,7 +1685,7 @@ xenFormatXLDisk(virConfValuePtr list, virDomainDiskDefPtr disk)
|
|||||||
virConfValuePtr val, tmp;
|
virConfValuePtr val, tmp;
|
||||||
int format = virDomainDiskGetFormat(disk);
|
int format = virDomainDiskGetFormat(disk);
|
||||||
const char *driver = virDomainDiskGetDriver(disk);
|
const char *driver = virDomainDiskGetDriver(disk);
|
||||||
char *target = NULL;
|
g_autofree char *target = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
/* format */
|
/* format */
|
||||||
@ -1772,7 +1771,6 @@ xenFormatXLDisk(virConfValuePtr list, virDomainDiskDefPtr disk)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(target);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user