mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
libxl: include a pointer to the driver in libxlDomainObjPrivate
Include a pointer to the libxl driver in libxlDomainObjPrivate object so it can be used in the domain event handler and shutdown thread. Signed-off-by: Jim Fehlig <jfehlig@suse.com>
This commit is contained in:
parent
3182448f4c
commit
7fb36c7b8d
@ -737,10 +737,11 @@ libxlDomainCleanupJob(libxlDriverPrivatePtr driver,
|
|||||||
* Register for domain events emitted by libxl.
|
* Register for domain events emitted by libxl.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
libxlDomainEventsRegister(virDomainObjPtr vm)
|
libxlDomainEventsRegister(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
|
||||||
{
|
{
|
||||||
libxlDomainObjPrivatePtr priv = vm->privateData;
|
libxlDomainObjPrivatePtr priv = vm->privateData;
|
||||||
|
|
||||||
|
priv->driver = driver;
|
||||||
libxl_event_register_callbacks(priv->ctx, &ev_hooks, vm);
|
libxl_event_register_callbacks(priv->ctx, &ev_hooks, vm);
|
||||||
|
|
||||||
/* Always enable domain death events */
|
/* Always enable domain death events */
|
||||||
@ -1018,7 +1019,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
|
|||||||
* be cleaned up if there are any subsequent failures.
|
* be cleaned up if there are any subsequent failures.
|
||||||
*/
|
*/
|
||||||
vm->def->id = domid;
|
vm->def->id = domid;
|
||||||
if (libxlDomainEventsRegister(vm) < 0)
|
if (libxlDomainEventsRegister(driver, vm) < 0)
|
||||||
goto cleanup_dom;
|
goto cleanup_dom;
|
||||||
|
|
||||||
if ((dom_xml = virDomainDefFormat(vm->def, 0)) == NULL)
|
if ((dom_xml = virDomainDefFormat(vm->def, 0)) == NULL)
|
||||||
|
@ -68,6 +68,7 @@ struct _libxlDomainObjPrivate {
|
|||||||
/* console */
|
/* console */
|
||||||
virChrdevsPtr devs;
|
virChrdevsPtr devs;
|
||||||
libxl_evgen_domain_death *deathW;
|
libxl_evgen_domain_death *deathW;
|
||||||
|
libxlDriverPrivatePtr driver;
|
||||||
|
|
||||||
struct libxlDomainJobObj job;
|
struct libxlDomainJobObj job;
|
||||||
};
|
};
|
||||||
@ -117,7 +118,8 @@ libxlDomainCleanupJob(libxlDriverPrivatePtr driver,
|
|||||||
virDomainObjPtr vm,
|
virDomainObjPtr vm,
|
||||||
virDomainShutoffReason reason);
|
virDomainShutoffReason reason);
|
||||||
int
|
int
|
||||||
libxlDomainEventsRegister(virDomainObjPtr vm);
|
libxlDomainEventsRegister(libxlDriverPrivatePtr driver,
|
||||||
|
virDomainObjPtr vm);
|
||||||
|
|
||||||
int
|
int
|
||||||
libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
|
libxlDomainAutoCoreDump(libxlDriverPrivatePtr driver,
|
||||||
|
@ -152,11 +152,11 @@ struct libxlShutdownThreadInfo
|
|||||||
static void
|
static void
|
||||||
libxlDomainShutdownThread(void *opaque)
|
libxlDomainShutdownThread(void *opaque)
|
||||||
{
|
{
|
||||||
libxlDriverPrivatePtr driver = libxl_driver;
|
|
||||||
struct libxlShutdownThreadInfo *shutdown_info = opaque;
|
struct libxlShutdownThreadInfo *shutdown_info = opaque;
|
||||||
virDomainObjPtr vm = shutdown_info->vm;
|
virDomainObjPtr vm = shutdown_info->vm;
|
||||||
libxlDomainObjPrivatePtr priv = vm->privateData;
|
libxlDomainObjPrivatePtr priv = vm->privateData;
|
||||||
libxl_event *ev = shutdown_info->event;
|
libxl_event *ev = shutdown_info->event;
|
||||||
|
libxlDriverPrivatePtr driver = priv->driver;
|
||||||
libxl_ctx *ctx = priv->ctx;
|
libxl_ctx *ctx = priv->ctx;
|
||||||
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;
|
||||||
@ -357,7 +357,7 @@ libxlReconnectDomain(virDomainObjPtr vm,
|
|||||||
driver->inhibitCallback(true, driver->inhibitOpaque);
|
driver->inhibitCallback(true, driver->inhibitOpaque);
|
||||||
|
|
||||||
/* Re-register domain death et. al. events */
|
/* Re-register domain death et. al. events */
|
||||||
libxlDomainEventsRegister(vm);
|
libxlDomainEventsRegister(driver, vm);
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user