[libvirt PATCH 0/2] qemu: Use qemuDomainSaveStatus

Jiri Denemark (2): qemu: Use qemuDomainSaveStatus qemu: Drop driver parameter from qemuDomainSetFakeReboot src/qemu/qemu_domain.c | 12 ++--- src/qemu/qemu_domain.h | 3 +- src/qemu/qemu_driver.c | 14 +++--- src/qemu/qemu_migration.c | 9 +--- src/qemu/qemu_process.c | 98 ++++++++------------------------------- src/qemu/qemu_process.h | 3 +- src/qemu/qemu_saveimage.c | 6 +-- 7 files changed, 35 insertions(+), 110 deletions(-) -- 2.34.1

It is a nice wrapper around virDomainObjSave which logs a warning, but otherwise ignores the error. Let's use it where appropriate. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_domain.c | 11 ++--- src/qemu/qemu_migration.c | 9 +---- src/qemu/qemu_process.c | 85 +++++++-------------------------------- src/qemu/qemu_saveimage.c | 6 +-- 4 files changed, 20 insertions(+), 91 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5607d6f581..a8bc1252fa 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6324,10 +6324,8 @@ void qemuDomainObjTaint(virQEMUDriver *driver, virDomainTaintFlags taint, qemuDomainLogContext *logCtxt) { - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); - qemuDomainObjTaintMsg(driver, obj, taint, logCtxt, NULL); - ignore_value(virDomainObjSave(obj, driver->xmlopt, cfg->stateDir)); + qemuDomainSaveStatus(obj); } void qemuDomainObjTaintMsg(virQEMUDriver *driver, @@ -7163,20 +7161,17 @@ qemuDomainRemoveInactiveJobLocked(virQEMUDriver *driver, void -qemuDomainSetFakeReboot(virQEMUDriver *driver, +qemuDomainSetFakeReboot(virQEMUDriver *driver G_GNUC_UNUSED, virDomainObj *vm, bool value) { qemuDomainObjPrivate *priv = vm->privateData; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); if (priv->fakeReboot == value) return; priv->fakeReboot = value; - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Failed to save status on vm %s", vm->def->name); + qemuDomainSaveStatus(vm); } static void diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index e32c5865f9..b9d7d582f5 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3383,7 +3383,6 @@ qemuMigrationSrcConfirmPhase(virQEMUDriver *driver, { g_autoptr(qemuMigrationCookie) mig = NULL; virObjectEvent *event; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); qemuDomainObjPrivate *priv = vm->privateData; qemuDomainJobPrivate *jobPriv = priv->job.privateData; qemuDomainJobInfo *jobInfo = NULL; @@ -3473,8 +3472,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriver *driver, qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Failed to save status on vm %s", vm->def->name); + qemuDomainSaveStatus(vm); } return 0; @@ -5627,7 +5625,6 @@ qemuMigrationDstFinish(virQEMUDriver *driver, int cookie_flags = 0; qemuDomainObjPrivate *priv = vm->privateData; qemuDomainJobPrivate *jobPriv = priv->job.privateData; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); unsigned short port; unsigned long long timeReceived = 0; virObjectEvent *event; @@ -5834,9 +5831,7 @@ qemuMigrationDstFinish(virQEMUDriver *driver, virObjectEventStateQueue(driver->domainEventState, event); } - if (virDomainObjIsActive(vm) && - virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Failed to save status on vm %s", vm->def->name); + qemuDomainSaveStatus(vm); /* Guest is successfully running, so cancel previous auto destroy */ qemuProcessAutoDestroyRemove(driver, vm); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 82d0af5549..8bd7bf8155 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -414,7 +414,6 @@ qemuProcessHandleReset(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; qemuDomainObjPrivate *priv; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virDomainState state; int reason; @@ -435,8 +434,7 @@ qemuProcessHandleReset(qemuMonitor *mon G_GNUC_UNUSED, if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_RESET); - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Failed to save status on vm %s", vm->def->name); + qemuDomainSaveStatus(vm); unlock: virObjectUnlock(vm); @@ -458,7 +456,6 @@ qemuProcessFakeReboot(void *opaque) virDomainObj *vm = opaque; qemuDomainObjPrivate *priv = vm->privateData; virQEMUDriver *driver = priv->driver; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virDomainRunningReason reason = VIR_DOMAIN_RUNNING_BOOTED; int ret = -1, rc; @@ -493,11 +490,7 @@ qemuProcessFakeReboot(void *opaque) goto endjob; } - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } - + qemuDomainSaveStatus(vm); ret = 0; endjob: @@ -575,7 +568,6 @@ qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; qemuDomainObjPrivate *priv; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); int detail = 0; VIR_DEBUG("vm=%p", vm); @@ -622,11 +614,7 @@ qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSED, event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SHUTDOWN, detail); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } + qemuDomainSaveStatus(vm); } else { priv->pausedShutdown = true; } @@ -651,7 +639,6 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, virObjectEvent *event = NULL; virDomainPausedReason reason; virDomainEventSuspendedDetailType detail; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); qemuDomainObjPrivate *priv = vm->privateData; virObjectLock(vm); @@ -692,10 +679,7 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState)); - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } + qemuDomainSaveStatus(vm); } virObjectUnlock(vm); @@ -710,7 +694,6 @@ qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED, { virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); qemuDomainObjPrivate *priv; virDomainRunningReason reason = VIR_DOMAIN_RUNNING_UNPAUSED; virDomainEventResumedDetailType eventDetail; @@ -734,11 +717,7 @@ qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED, event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_RESUMED, eventDetail); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } + qemuDomainSaveStatus(vm); } virObjectUnlock(vm); @@ -753,7 +732,6 @@ qemuProcessHandleRTCChange(qemuMonitor *mon G_GNUC_UNUSED, { virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virObjectLock(vm); @@ -776,8 +754,7 @@ qemuProcessHandleRTCChange(qemuMonitor *mon G_GNUC_UNUSED, offset += vm->def->clock.data.variable.adjustment0; vm->def->clock.data.variable.adjustment = offset; - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("unable to save domain status with RTC change"); + qemuDomainSaveStatus(vm); } event = virDomainEventRTCChangeNewFromObj(vm, offset); @@ -797,7 +774,6 @@ qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *watchdogEvent = NULL; virObjectEvent *lifecycleEvent = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virObjectLock(vm); watchdogEvent = virDomainEventWatchdogNewFromObj(vm, action); @@ -817,10 +793,7 @@ qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUSED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState)); - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after watchdog event", - vm->def->name); - } + qemuDomainSaveStatus(vm); } if (vm->def->watchdog->action == VIR_DOMAIN_WATCHDOG_ACTION_DUMP) { @@ -859,7 +832,6 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED, const char *srcPath; const char *devAlias; virDomainDiskDef *disk; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virObjectLock(vm); @@ -902,8 +874,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState)); - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Unable to save status on vm %s after IO error", vm->def->name); + qemuDomainSaveStatus(vm); } virObjectUnlock(vm); @@ -1085,7 +1056,6 @@ qemuProcessHandleTrayChange(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; virDomainDiskDef *disk; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virObjectLock(vm); disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, devAlias, devid); @@ -1098,11 +1068,7 @@ qemuProcessHandleTrayChange(qemuMonitor *mon G_GNUC_UNUSED, else if (reason == VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE) disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED; - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after tray moved event", - vm->def->name); - } - + qemuDomainSaveStatus(vm); virDomainObjBroadcast(vm); } @@ -1118,7 +1084,6 @@ qemuProcessHandlePMWakeup(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; virObjectEvent *lifecycleEvent = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virObjectLock(vm); event = virDomainEventPMWakeupNewFromObj(vm); @@ -1135,11 +1100,7 @@ qemuProcessHandlePMWakeup(qemuMonitor *mon G_GNUC_UNUSED, lifecycleEvent = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STARTED, VIR_DOMAIN_EVENT_STARTED_WAKEUP); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after wakeup event", - vm->def->name); - } + qemuDomainSaveStatus(vm); } virObjectUnlock(vm); @@ -1155,7 +1116,6 @@ qemuProcessHandlePMSuspend(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; virObjectEvent *lifecycleEvent = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virObjectLock(vm); event = virDomainEventPMSuspendNewFromObj(vm); @@ -1171,11 +1131,7 @@ qemuProcessHandlePMSuspend(qemuMonitor *mon G_GNUC_UNUSED, virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_PMSUSPENDED, VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after suspend event", - vm->def->name); - } + qemuDomainSaveStatus(vm); if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_SUSPEND); @@ -1195,7 +1151,6 @@ qemuProcessHandleBalloonChange(qemuMonitor *mon G_GNUC_UNUSED, { virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); size_t i; virObjectLock(vm); @@ -1216,9 +1171,7 @@ qemuProcessHandleBalloonChange(qemuMonitor *mon G_GNUC_UNUSED, vm->def->mem.cur_balloon, actual); vm->def->mem.cur_balloon = actual; - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("unable to save domain status with balloon change"); - + qemuDomainSaveStatus(vm); virObjectUnlock(vm); virObjectEventStateQueue(driver->domainEventState, event); @@ -1232,7 +1185,6 @@ qemuProcessHandlePMSuspendDisk(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; virObjectEvent *lifecycleEvent = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virObjectLock(vm); event = virDomainEventPMSuspendDiskNewFromObj(vm); @@ -1248,11 +1200,7 @@ qemuProcessHandlePMSuspendDisk(qemuMonitor *mon G_GNUC_UNUSED, virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_PMSUSPENDED, VIR_DOMAIN_EVENT_PMSUSPENDED_DISK); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after suspend event", - vm->def->name); - } + qemuDomainSaveStatus(vm); if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_SUSPEND); @@ -1599,7 +1547,6 @@ qemuProcessHandleMigrationStatus(qemuMonitor *mon G_GNUC_UNUSED, qemuDomainObjPrivate *priv; virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); int reason; virObjectLock(vm); @@ -1629,11 +1576,7 @@ qemuProcessHandleMigrationStatus(qemuMonitor *mon G_GNUC_UNUSED, event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED, VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } + qemuDomainSaveStatus(vm); } cleanup: diff --git a/src/qemu/qemu_saveimage.c b/src/qemu/qemu_saveimage.c index 557ee2cd21..28d6098dd8 100644 --- a/src/qemu/qemu_saveimage.c +++ b/src/qemu/qemu_saveimage.c @@ -586,7 +586,6 @@ qemuSaveImageStartVM(virConnectPtr conn, VIR_AUTOCLOSE intermediatefd = -1; g_autoptr(virCommand) cmd = NULL; g_autofree char *errbuf = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virQEMUSaveHeader *header = &data->header; g_autoptr(qemuDomainSaveCookie) cookie = NULL; int rc = 0; @@ -680,10 +679,7 @@ qemuSaveImageStartVM(virConnectPtr conn, "%s", _("failed to resume domain")); goto cleanup; } - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Failed to save status on vm %s", vm->def->name); - goto cleanup; - } + qemuDomainSaveStatus(vm); } else { int detail = (start_paused ? VIR_DOMAIN_EVENT_SUSPENDED_PAUSED : VIR_DOMAIN_EVENT_SUSPENDED_RESTORED); -- 2.34.1

On Tue, Dec 14, 2021 at 9:52 PM Jiri Denemark <jdenemar@redhat.com> wrote:
It is a nice wrapper around virDomainObjSave which logs a warning, but otherwise ignores the error. Let's use it where appropriate.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_domain.c | 11 ++--- src/qemu/qemu_migration.c | 9 +---- src/qemu/qemu_process.c | 85 +++++++-------------------------------- src/qemu/qemu_saveimage.c | 6 +-- 4 files changed, 20 insertions(+), 91 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5607d6f581..a8bc1252fa 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6324,10 +6324,8 @@ void qemuDomainObjTaint(virQEMUDriver *driver, virDomainTaintFlags taint, qemuDomainLogContext *logCtxt) { - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); - qemuDomainObjTaintMsg(driver, obj, taint, logCtxt, NULL); - ignore_value(virDomainObjSave(obj, driver->xmlopt, cfg->stateDir)); + qemuDomainSaveStatus(obj); }
void qemuDomainObjTaintMsg(virQEMUDriver *driver, @@ -7163,20 +7161,17 @@ qemuDomainRemoveInactiveJobLocked(virQEMUDriver *driver,
void -qemuDomainSetFakeReboot(virQEMUDriver *driver, +qemuDomainSetFakeReboot(virQEMUDriver *driver G_GNUC_UNUSED, virDomainObj *vm, bool value) { qemuDomainObjPrivate *priv = vm->privateData; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
if (priv->fakeReboot == value) return;
priv->fakeReboot = value; - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Failed to save status on vm %s", vm->def->name); + qemuDomainSaveStatus(vm); }
static void diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index e32c5865f9..b9d7d582f5 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3383,7 +3383,6 @@ qemuMigrationSrcConfirmPhase(virQEMUDriver *driver, { g_autoptr(qemuMigrationCookie) mig = NULL; virObjectEvent *event; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); qemuDomainObjPrivate *priv = vm->privateData; qemuDomainJobPrivate *jobPriv = priv->job.privateData; qemuDomainJobInfo *jobInfo = NULL; @@ -3473,8 +3472,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriver *driver, qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags);
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Failed to save status on vm %s", vm->def->name); + qemuDomainSaveStatus(vm); }
return 0; @@ -5627,7 +5625,6 @@ qemuMigrationDstFinish(virQEMUDriver *driver, int cookie_flags = 0; qemuDomainObjPrivate *priv = vm->privateData; qemuDomainJobPrivate *jobPriv = priv->job.privateData; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); unsigned short port; unsigned long long timeReceived = 0; virObjectEvent *event; @@ -5834,9 +5831,7 @@ qemuMigrationDstFinish(virQEMUDriver *driver, virObjectEventStateQueue(driver->domainEventState, event); }
- if (virDomainObjIsActive(vm) && - virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Failed to save status on vm %s", vm->def->name); + qemuDomainSaveStatus(vm);
/* Guest is successfully running, so cancel previous auto destroy */ qemuProcessAutoDestroyRemove(driver, vm); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 82d0af5549..8bd7bf8155 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -414,7 +414,6 @@ qemuProcessHandleReset(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; qemuDomainObjPrivate *priv; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virDomainState state; int reason;
@@ -435,8 +434,7 @@ qemuProcessHandleReset(qemuMonitor *mon G_GNUC_UNUSED, if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_RESET);
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Failed to save status on vm %s", vm->def->name); + qemuDomainSaveStatus(vm);
unlock: virObjectUnlock(vm); @@ -458,7 +456,6 @@ qemuProcessFakeReboot(void *opaque) virDomainObj *vm = opaque; qemuDomainObjPrivate *priv = vm->privateData; virQEMUDriver *driver = priv->driver; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virDomainRunningReason reason = VIR_DOMAIN_RUNNING_BOOTED; int ret = -1, rc;
@@ -493,11 +490,7 @@ qemuProcessFakeReboot(void *opaque) goto endjob; }
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } - + qemuDomainSaveStatus(vm); ret = 0;
endjob: @@ -575,7 +568,6 @@ qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; qemuDomainObjPrivate *priv; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); int detail = 0;
VIR_DEBUG("vm=%p", vm); @@ -622,11 +614,7 @@ qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSED, event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SHUTDOWN, detail); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } + qemuDomainSaveStatus(vm); } else { priv->pausedShutdown = true; } @@ -651,7 +639,6 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, virObjectEvent *event = NULL; virDomainPausedReason reason; virDomainEventSuspendedDetailType detail; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); qemuDomainObjPrivate *priv = vm->privateData;
virObjectLock(vm); @@ -692,10 +679,7 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } + qemuDomainSaveStatus(vm); }
virObjectUnlock(vm); @@ -710,7 +694,6 @@ qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED, { virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); qemuDomainObjPrivate *priv; virDomainRunningReason reason = VIR_DOMAIN_RUNNING_UNPAUSED; virDomainEventResumedDetailType eventDetail; @@ -734,11 +717,7 @@ qemuProcessHandleResume(qemuMonitor *mon G_GNUC_UNUSED, event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_RESUMED, eventDetail); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } + qemuDomainSaveStatus(vm); }
virObjectUnlock(vm); @@ -753,7 +732,6 @@ qemuProcessHandleRTCChange(qemuMonitor *mon G_GNUC_UNUSED, { virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
virObjectLock(vm);
@@ -776,8 +754,7 @@ qemuProcessHandleRTCChange(qemuMonitor *mon G_GNUC_UNUSED, offset += vm->def->clock.data.variable.adjustment0; vm->def->clock.data.variable.adjustment = offset;
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("unable to save domain status with RTC change"); + qemuDomainSaveStatus(vm); }
event = virDomainEventRTCChangeNewFromObj(vm, offset); @@ -797,7 +774,6 @@ qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *watchdogEvent = NULL; virObjectEvent *lifecycleEvent = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
virObjectLock(vm); watchdogEvent = virDomainEventWatchdogNewFromObj(vm, action); @@ -817,10 +793,7 @@ qemuProcessHandleWatchdog(qemuMonitor *mon G_GNUC_UNUSED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after watchdog event", - vm->def->name); - } + qemuDomainSaveStatus(vm); }
if (vm->def->watchdog->action == VIR_DOMAIN_WATCHDOG_ACTION_DUMP) { @@ -859,7 +832,6 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED, const char *srcPath; const char *devAlias; virDomainDiskDef *disk; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
virObjectLock(vm);
@@ -902,8 +874,7 @@ qemuProcessHandleIOError(qemuMonitor *mon G_GNUC_UNUSED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("Unable to save status on vm %s after IO error", vm->def->name); + qemuDomainSaveStatus(vm); } virObjectUnlock(vm);
@@ -1085,7 +1056,6 @@ qemuProcessHandleTrayChange(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; virDomainDiskDef *disk; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
virObjectLock(vm); disk = qemuProcessFindDomainDiskByAliasOrQOM(vm, devAlias, devid); @@ -1098,11 +1068,7 @@ qemuProcessHandleTrayChange(qemuMonitor *mon G_GNUC_UNUSED, else if (reason == VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE) disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after tray moved event", - vm->def->name); - } - + qemuDomainSaveStatus(vm); virDomainObjBroadcast(vm); }
@@ -1118,7 +1084,6 @@ qemuProcessHandlePMWakeup(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; virObjectEvent *lifecycleEvent = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
virObjectLock(vm); event = virDomainEventPMWakeupNewFromObj(vm); @@ -1135,11 +1100,7 @@ qemuProcessHandlePMWakeup(qemuMonitor *mon G_GNUC_UNUSED, lifecycleEvent = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STARTED, VIR_DOMAIN_EVENT_STARTED_WAKEUP); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after wakeup event", - vm->def->name); - } + qemuDomainSaveStatus(vm); }
virObjectUnlock(vm); @@ -1155,7 +1116,6 @@ qemuProcessHandlePMSuspend(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; virObjectEvent *lifecycleEvent = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
virObjectLock(vm); event = virDomainEventPMSuspendNewFromObj(vm); @@ -1171,11 +1131,7 @@ qemuProcessHandlePMSuspend(qemuMonitor *mon G_GNUC_UNUSED, virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_PMSUSPENDED, VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after suspend event", - vm->def->name); - } + qemuDomainSaveStatus(vm);
if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_SUSPEND); @@ -1195,7 +1151,6 @@ qemuProcessHandleBalloonChange(qemuMonitor *mon G_GNUC_UNUSED, { virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); size_t i;
virObjectLock(vm); @@ -1216,9 +1171,7 @@ qemuProcessHandleBalloonChange(qemuMonitor *mon G_GNUC_UNUSED, vm->def->mem.cur_balloon, actual); vm->def->mem.cur_balloon = actual;
- if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) - VIR_WARN("unable to save domain status with balloon change"); - + qemuDomainSaveStatus(vm); virObjectUnlock(vm);
virObjectEventStateQueue(driver->domainEventState, event); @@ -1232,7 +1185,6 @@ qemuProcessHandlePMSuspendDisk(qemuMonitor *mon G_GNUC_UNUSED, virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; virObjectEvent *lifecycleEvent = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
virObjectLock(vm); event = virDomainEventPMSuspendDiskNewFromObj(vm); @@ -1248,11 +1200,7 @@ qemuProcessHandlePMSuspendDisk(qemuMonitor *mon G_GNUC_UNUSED, virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_PMSUSPENDED, VIR_DOMAIN_EVENT_PMSUSPENDED_DISK); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after suspend event", - vm->def->name); - } + qemuDomainSaveStatus(vm);
if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_SUSPEND); @@ -1599,7 +1547,6 @@ qemuProcessHandleMigrationStatus(qemuMonitor *mon G_GNUC_UNUSED, qemuDomainObjPrivate *priv; virQEMUDriver *driver = opaque; virObjectEvent *event = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); int reason;
virObjectLock(vm); @@ -1629,11 +1576,7 @@ qemuProcessHandleMigrationStatus(qemuMonitor *mon G_GNUC_UNUSED, event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED, VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY); - - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Unable to save status on vm %s after state change", - vm->def->name); - } + qemuDomainSaveStatus(vm); }
cleanup: diff --git a/src/qemu/qemu_saveimage.c b/src/qemu/qemu_saveimage.c index 557ee2cd21..28d6098dd8 100644 --- a/src/qemu/qemu_saveimage.c +++ b/src/qemu/qemu_saveimage.c @@ -586,7 +586,6 @@ qemuSaveImageStartVM(virConnectPtr conn, VIR_AUTOCLOSE intermediatefd = -1; g_autoptr(virCommand) cmd = NULL; g_autofree char *errbuf = NULL; - g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); virQEMUSaveHeader *header = &data->header; g_autoptr(qemuDomainSaveCookie) cookie = NULL; int rc = 0; @@ -680,10 +679,7 @@ qemuSaveImageStartVM(virConnectPtr conn, "%s", _("failed to resume domain")); goto cleanup; } - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) { - VIR_WARN("Failed to save status on vm %s", vm->def->name); - goto cleanup; - } + qemuDomainSaveStatus(vm);
This introduced a bug. I have sent a patch to fix since I see this patch has been already pushed.
} else { int detail = (start_paused ? VIR_DOMAIN_EVENT_SUSPENDED_PAUSED : VIR_DOMAIN_EVENT_SUSPENDED_RESTORED); -- 2.34.1

And its callers. The parameter is no longer used since virDomainObjSave was replaced with qemuDomainSaveStatus wrapper. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_domain.c | 3 +-- src/qemu/qemu_domain.h | 3 +-- src/qemu/qemu_driver.c | 14 +++++++------- src/qemu/qemu_process.c | 13 ++++++------- src/qemu/qemu_process.h | 3 +-- 5 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index a8bc1252fa..3f10f9306f 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7161,8 +7161,7 @@ qemuDomainRemoveInactiveJobLocked(virQEMUDriver *driver, void -qemuDomainSetFakeReboot(virQEMUDriver *driver G_GNUC_UNUSED, - virDomainObj *vm, +qemuDomainSetFakeReboot(virDomainObj *vm, bool value) { qemuDomainObjPrivate *priv = vm->privateData; diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 5474d1dccc..38c6ffb76b 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -641,8 +641,7 @@ int qemuDomainSnapshotDiscardAllMetadata(virQEMUDriver *driver, void qemuDomainRemoveInactive(virQEMUDriver *driver, virDomainObj *vm); -void qemuDomainSetFakeReboot(virQEMUDriver *driver, - virDomainObj *vm, +void qemuDomainSetFakeReboot(virDomainObj *vm, bool value); int qemuDomainCheckDiskStartupPolicy(virQEMUDriver *driver, diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index db2b25adbd..c9a372ce2b 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1902,7 +1902,7 @@ qemuDomainShutdownFlagsAgent(virQEMUDriver *driver, if (!qemuDomainAgentAvailable(vm, reportError)) goto endjob; - qemuDomainSetFakeReboot(driver, vm, false); + qemuDomainSetFakeReboot(vm, false); agent = qemuDomainObjEnterAgent(vm); ret = qemuAgentShutdown(agent, agentFlag); qemuDomainObjExitAgent(vm, agent); @@ -1932,7 +1932,7 @@ qemuDomainShutdownFlagsMonitor(virQEMUDriver *driver, goto endjob; } - qemuDomainSetFakeReboot(driver, vm, isReboot); + qemuDomainSetFakeReboot(vm, isReboot); qemuDomainObjEnterMonitor(driver, vm); ret = qemuMonitorSystemPowerdown(priv->mon); qemuDomainObjExitMonitor(driver, vm); @@ -2031,7 +2031,7 @@ qemuDomainRebootAgent(virQEMUDriver *driver, if (virDomainObjCheckActive(vm) < 0) goto endjob; - qemuDomainSetFakeReboot(driver, vm, false); + qemuDomainSetFakeReboot(vm, false); agent = qemuDomainObjEnterAgent(vm); ret = qemuAgentShutdown(agent, agentFlag); qemuDomainObjExitAgent(vm, agent); @@ -2057,7 +2057,7 @@ qemuDomainRebootMonitor(virQEMUDriver *driver, if (virDomainObjCheckActive(vm) < 0) goto endjob; - qemuDomainSetFakeReboot(driver, vm, isReboot); + qemuDomainSetFakeReboot(vm, isReboot); qemuDomainObjEnterMonitor(driver, vm); ret = qemuMonitorSystemPowerdown(priv->mon); qemuDomainObjExitMonitor(driver, vm); @@ -2213,7 +2213,7 @@ qemuDomainDestroyFlags(virDomainPtr dom, goto endjob; } - qemuDomainSetFakeReboot(driver, vm, false); + qemuDomainSetFakeReboot(vm, false); if (priv->job.asyncJob == QEMU_ASYNC_JOB_MIGRATION_IN) stopFlags |= VIR_QEMU_PROCESS_STOP_MIGRATED; @@ -3613,8 +3613,8 @@ processGuestPanicEvent(virQEMUDriver *driver, G_GNUC_FALLTHROUGH; case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART: - qemuDomainSetFakeReboot(driver, vm, true); - qemuProcessShutdownOrReboot(driver, vm); + qemuDomainSetFakeReboot(vm, true); + qemuProcessShutdownOrReboot(vm); break; case VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE: diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 8bd7bf8155..de1146251d 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -498,7 +498,7 @@ qemuProcessFakeReboot(void *opaque) cleanup: priv->pausedShutdown = false; - qemuDomainSetFakeReboot(driver, vm, false); + qemuDomainSetFakeReboot(vm, false); if (ret == -1) ignore_value(qemuProcessKill(vm, VIR_QEMU_PROCESS_KILL_FORCE)); virDomainObjEndAPI(&vm); @@ -506,8 +506,7 @@ qemuProcessFakeReboot(void *opaque) void -qemuProcessShutdownOrReboot(virQEMUDriver *driver, - virDomainObj *vm) +qemuProcessShutdownOrReboot(virDomainObj *vm) { qemuDomainObjPrivate *priv = vm->privateData; @@ -526,7 +525,7 @@ qemuProcessShutdownOrReboot(virQEMUDriver *driver, VIR_ERROR(_("Failed to create reboot thread, killing domain")); ignore_value(qemuProcessKill(vm, VIR_QEMU_PROCESS_KILL_NOWAIT)); priv->pausedShutdown = false; - qemuDomainSetFakeReboot(driver, vm, false); + qemuDomainSetFakeReboot(vm, false); virObjectUnref(vm); } } else { @@ -622,7 +621,7 @@ qemuProcessHandleShutdown(qemuMonitor *mon G_GNUC_UNUSED, if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_SHUTDOWN); - qemuProcessShutdownOrReboot(driver, vm); + qemuProcessShutdownOrReboot(vm); unlock: virObjectUnlock(vm); @@ -5630,7 +5629,7 @@ qemuProcessInit(virQEMUDriver *driver, } } else { vm->def->id = qemuDriverAllocateID(driver); - qemuDomainSetFakeReboot(driver, vm, false); + qemuDomainSetFakeReboot(vm, false); virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_STARTING_UP); if (g_atomic_int_add(&driver->nactive, 1) == 0 && driver->inhibitCallback) @@ -8866,7 +8865,7 @@ qemuProcessReconnect(void *opaque) reason == VIR_DOMAIN_PAUSED_USER)) { VIR_DEBUG("Finishing shutdown sequence for domain %s", obj->def->name); - qemuProcessShutdownOrReboot(driver, obj); + qemuProcessShutdownOrReboot(obj); goto cleanup; } diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index c0f1c85aab..ab276da15c 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -168,8 +168,7 @@ typedef enum { int qemuProcessKill(virDomainObj *vm, unsigned int flags); -void qemuProcessShutdownOrReboot(virQEMUDriver *driver, - virDomainObj *vm); +void qemuProcessShutdownOrReboot(virDomainObj *vm); int qemuProcessAutoDestroyInit(virQEMUDriver *driver); void qemuProcessAutoDestroyShutdown(virQEMUDriver *driver); -- 2.34.1

On 12/14/21 17:22, Jiri Denemark wrote:
Jiri Denemark (2): qemu: Use qemuDomainSaveStatus qemu: Drop driver parameter from qemuDomainSetFakeReboot
src/qemu/qemu_domain.c | 12 ++--- src/qemu/qemu_domain.h | 3 +- src/qemu/qemu_driver.c | 14 +++--- src/qemu/qemu_migration.c | 9 +--- src/qemu/qemu_process.c | 98 ++++++++------------------------------- src/qemu/qemu_process.h | 3 +- src/qemu/qemu_saveimage.c | 6 +-- 7 files changed, 35 insertions(+), 110 deletions(-)
Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal
participants (3)
-
Ani Sinha
-
Jiri Denemark
-
Michal Prívozník