提交 bb647fd7 编写于 作者: M Michal Privoznik

libxl_domain: Use g_autoptr for libxlDriverConfig

This simplifies some functions, but mostly
libxlDomainManagedSavePath() which is going to be modified in
future commits.
Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
上级 417bd1e7
...@@ -475,10 +475,9 @@ libxlDomainShutdownThread(void *opaque) ...@@ -475,10 +475,9 @@ libxlDomainShutdownThread(void *opaque)
libxlDriverPrivatePtr driver = shutdown_info->driver; libxlDriverPrivatePtr driver = shutdown_info->driver;
virObjectEventPtr dom_event = NULL; virObjectEventPtr dom_event = NULL;
libxl_shutdown_reason xl_reason = ev->u.domain_shutdown.shutdown_reason; libxl_shutdown_reason xl_reason = ev->u.domain_shutdown.shutdown_reason;
libxlDriverConfigPtr cfg; g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
libxl_domain_config d_config; libxl_domain_config d_config;
cfg = libxlDriverConfigGet(driver);
libxl_domain_config_init(&d_config); libxl_domain_config_init(&d_config);
vm = virDomainObjListFindByID(driver->domains, ev->domid); vm = virDomainObjListFindByID(driver->domains, ev->domid);
...@@ -600,7 +599,6 @@ libxlDomainShutdownThread(void *opaque) ...@@ -600,7 +599,6 @@ libxlDomainShutdownThread(void *opaque)
libxl_event_free(cfg->ctx, ev); libxl_event_free(cfg->ctx, ev);
VIR_FREE(shutdown_info); VIR_FREE(shutdown_info);
libxl_domain_config_dispose(&d_config); libxl_domain_config_dispose(&d_config);
virObjectUnref(cfg);
} }
static void static void
...@@ -611,11 +609,9 @@ libxlDomainDeathThread(void *opaque) ...@@ -611,11 +609,9 @@ libxlDomainDeathThread(void *opaque)
libxl_event *ev = shutdown_info->event; libxl_event *ev = shutdown_info->event;
libxlDriverPrivatePtr driver = shutdown_info->driver; libxlDriverPrivatePtr driver = shutdown_info->driver;
virObjectEventPtr dom_event = NULL; virObjectEventPtr dom_event = NULL;
libxlDriverConfigPtr cfg; g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
libxlDomainObjPrivatePtr priv; libxlDomainObjPrivatePtr priv;
cfg = libxlDriverConfigGet(driver);
vm = virDomainObjListFindByID(driver->domains, ev->domid); vm = virDomainObjListFindByID(driver->domains, ev->domid);
if (!vm) { if (!vm) {
/* vm->def->id already cleared, means the death was handled by the /* vm->def->id already cleared, means the death was handled by the
...@@ -647,7 +643,6 @@ libxlDomainDeathThread(void *opaque) ...@@ -647,7 +643,6 @@ libxlDomainDeathThread(void *opaque)
virObjectEventStateQueue(driver->domainEventState, dom_event); virObjectEventStateQueue(driver->domainEventState, dom_event);
libxl_event_free(cfg->ctx, ev); libxl_event_free(cfg->ctx, ev);
VIR_FREE(shutdown_info); VIR_FREE(shutdown_info);
virObjectUnref(cfg);
} }
...@@ -661,7 +656,7 @@ libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event) ...@@ -661,7 +656,7 @@ libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event)
libxl_shutdown_reason xl_reason = event->u.domain_shutdown.shutdown_reason; libxl_shutdown_reason xl_reason = event->u.domain_shutdown.shutdown_reason;
struct libxlShutdownThreadInfo *shutdown_info = NULL; struct libxlShutdownThreadInfo *shutdown_info = NULL;
virThread thread; virThread thread;
libxlDriverConfigPtr cfg; g_autoptr(libxlDriverConfig) cfg = NULL;
int ret = -1; int ret = -1;
if (event->type != LIBXL_EVENT_TYPE_DOMAIN_SHUTDOWN && if (event->type != LIBXL_EVENT_TYPE_DOMAIN_SHUTDOWN &&
...@@ -710,7 +705,6 @@ libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event) ...@@ -710,7 +705,6 @@ libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event)
cfg = libxlDriverConfigGet(driver); cfg = libxlDriverConfigGet(driver);
/* Cast away any const */ /* Cast away any const */
libxl_event_free(cfg->ctx, (libxl_event *)event); libxl_event_free(cfg->ctx, (libxl_event *)event);
virObjectUnref(cfg);
VIR_FREE(shutdown_info); VIR_FREE(shutdown_info);
} }
...@@ -718,10 +712,9 @@ char * ...@@ -718,10 +712,9 @@ char *
libxlDomainManagedSavePath(libxlDriverPrivatePtr driver, virDomainObjPtr vm) libxlDomainManagedSavePath(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
{ {
char *ret; char *ret;
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
ignore_value(virAsprintf(&ret, "%s/%s.save", cfg->saveDir, vm->def->name)); ignore_value(virAsprintf(&ret, "%s/%s.save", cfg->saveDir, vm->def->name));
virObjectUnref(cfg);
return ret; return ret;
} }
...@@ -808,7 +801,7 @@ int ...@@ -808,7 +801,7 @@ int
libxlDomainDestroyInternal(libxlDriverPrivatePtr driver, libxlDomainDestroyInternal(libxlDriverPrivatePtr driver,
virDomainObjPtr vm) virDomainObjPtr vm)
{ {
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
libxlDomainObjPrivatePtr priv = vm->privateData; libxlDomainObjPrivatePtr priv = vm->privateData;
int ret = -1; int ret = -1;
...@@ -825,7 +818,6 @@ libxlDomainDestroyInternal(libxlDriverPrivatePtr driver, ...@@ -825,7 +818,6 @@ libxlDomainDestroyInternal(libxlDriverPrivatePtr driver,
if (ret) if (ret)
priv->ignoreDeathEvent = false; priv->ignoreDeathEvent = false;
virObjectUnref(cfg);
return ret; return ret;
} }
...@@ -839,7 +831,7 @@ libxlDomainCleanup(libxlDriverPrivatePtr driver, ...@@ -839,7 +831,7 @@ libxlDomainCleanup(libxlDriverPrivatePtr driver,
virDomainObjPtr vm) virDomainObjPtr vm)
{ {
libxlDomainObjPrivatePtr priv = vm->privateData; libxlDomainObjPrivatePtr priv = vm->privateData;
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
int vnc_port; int vnc_port;
char *file; char *file;
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr; virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
...@@ -931,7 +923,6 @@ libxlDomainCleanup(libxlDriverPrivatePtr driver, ...@@ -931,7 +923,6 @@ libxlDomainCleanup(libxlDriverPrivatePtr driver,
} }
virDomainObjRemoveTransientDef(vm); virDomainObjRemoveTransientDef(vm);
virObjectUnref(cfg);
virObjectUnref(conn); virObjectUnref(conn);
} }
...@@ -944,7 +935,7 @@ int ...@@ -944,7 +935,7 @@ int
libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver, libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
virDomainObjPtr vm) virDomainObjPtr vm)
{ {
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
time_t curtime = time(NULL); time_t curtime = time(NULL);
char timestr[100]; char timestr[100];
struct tm time_info; struct tm time_info;
...@@ -969,7 +960,6 @@ libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver, ...@@ -969,7 +960,6 @@ libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
cleanup: cleanup:
VIR_FREE(dumpfile); VIR_FREE(dumpfile);
virObjectUnref(cfg);
return ret; return ret;
} }
...@@ -977,7 +967,7 @@ libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver, ...@@ -977,7 +967,7 @@ libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
int int
libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm) libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
{ {
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
virDomainVcpuDefPtr vcpu; virDomainVcpuDefPtr vcpu;
libxl_bitmap map; libxl_bitmap map;
virBitmapPtr cpumask = NULL; virBitmapPtr cpumask = NULL;
...@@ -1014,7 +1004,6 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm) ...@@ -1014,7 +1004,6 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
cleanup: cleanup:
libxl_bitmap_dispose(&map); libxl_bitmap_dispose(&map);
virObjectUnref(cfg);
return ret; return ret;
} }
...@@ -1275,7 +1264,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver, ...@@ -1275,7 +1264,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
char *managed_save_path = NULL; char *managed_save_path = NULL;
int managed_save_fd = -1; int managed_save_fd = -1;
libxlDomainObjPrivatePtr priv = vm->privateData; libxlDomainObjPrivatePtr priv = vm->privateData;
libxlDriverConfigPtr cfg; g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr; virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
libxl_asyncprogress_how aop_console_how; libxl_asyncprogress_how aop_console_how;
libxl_domain_restore_params params; libxl_domain_restore_params params;
...@@ -1288,7 +1277,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver, ...@@ -1288,7 +1277,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
libxl_domain_config_init(&d_config); libxl_domain_config_init(&d_config);
cfg = libxlDriverConfigGet(driver);
/* If there is a managed saved state restore it instead of starting /* If there is a managed saved state restore it instead of starting
* from scratch. The old state is removed once the restoring succeeded. */ * from scratch. The old state is removed once the restoring succeeded. */
if (restore_fd < 0) { if (restore_fd < 0) {
...@@ -1528,7 +1516,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver, ...@@ -1528,7 +1516,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
VIR_FREE(managed_save_path); VIR_FREE(managed_save_path);
virDomainDefFree(def); virDomainDefFree(def);
VIR_FORCE_CLOSE(managed_save_fd); VIR_FORCE_CLOSE(managed_save_fd);
virObjectUnref(cfg);
return ret; return ret;
} }
...@@ -1558,7 +1545,7 @@ libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver, ...@@ -1558,7 +1545,7 @@ libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver,
{ {
virDomainDefPtr migratableDefSrc = NULL; virDomainDefPtr migratableDefSrc = NULL;
virDomainDefPtr migratableDefDst = NULL; virDomainDefPtr migratableDefDst = NULL;
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
bool ret = false; bool ret = false;
if (!(migratableDefSrc = virDomainDefCopy(src, cfg->caps, driver->xmlopt, NULL, true)) || if (!(migratableDefSrc = virDomainDefCopy(src, cfg->caps, driver->xmlopt, NULL, true)) ||
...@@ -1572,6 +1559,5 @@ libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver, ...@@ -1572,6 +1559,5 @@ libxlDomainDefCheckABIStability(libxlDriverPrivatePtr driver,
cleanup: cleanup:
virDomainDefFree(migratableDefSrc); virDomainDefFree(migratableDefSrc);
virDomainDefFree(migratableDefDst); virDomainDefFree(migratableDefDst);
virObjectUnref(cfg);
return ret; return ret;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册