if (vm->job->asyncJob == VIR_ASYNC_JOB_MIGRATION_IN)
stopFlags |= VIR_QEMU_PROCESS_STOP_MIGRATED;
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_DESTROYED,
- VIR_ASYNC_JOB_NONE, stopFlags);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_DESTROYED, VIR_ASYNC_JOB_NONE, stopFlags);
if ((flags & VIR_DOMAIN_DESTROY_REMOVE_LOGS) &&
qemuDomainRemoveLogs(driver, vm->def->name) < 0)
goto endjob;
/* Shut it down */
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SAVED,
- VIR_ASYNC_JOB_SAVE, 0);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_SAVED, VIR_ASYNC_JOB_SAVE, 0);
virDomainAuditStop(vm, "saved");
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SAVED);
endjob:
if ((ret == 0) && (flags & VIR_DUMP_CRASH)) {
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_CRASHED,
- VIR_ASYNC_JOB_DUMP, 0);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_CRASHED, VIR_ASYNC_JOB_DUMP, 0);
virDomainAuditStop(vm, "crashed");
event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
G_GNUC_FALLTHROUGH;
case VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY:
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_CRASHED,
- VIR_ASYNC_JOB_DUMP, 0);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_CRASHED, VIR_ASYNC_JOB_DUMP, 0);
event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_CRASHED);
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
eventReason);
- qemuProcessStop(driver, vm, stopReason, VIR_ASYNC_JOB_NONE, stopFlags);
+ qemuProcessStop(vm, stopReason, VIR_ASYNC_JOB_NONE, stopFlags);
virDomainAuditStop(vm, auditReason);
virObjectEventStateQueue(driver->domainEventState, event);
static void
-processShutdownCompletedEvent(virQEMUDriver *driver,
- virDomainObj *vm)
+processShutdownCompletedEvent(virDomainObj *vm)
{
if (qemuProcessBeginStopJob(vm, VIR_JOB_DESTROY, true) < 0)
return;
if (virDomainObjIsActive(vm)) {
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_UNKNOWN,
- VIR_ASYNC_JOB_NONE, 0);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_UNKNOWN, VIR_ASYNC_JOB_NONE, 0);
}
qemuProcessEndStopJob(vm);
processNbdkitExitedEvent(vm, processEvent->data);
break;
case QEMU_PROCESS_EVENT_SHUTDOWN_COMPLETED:
- processShutdownCompletedEvent(driver, vm);
+ processShutdownCompletedEvent(vm);
break;
case QEMU_PROCESS_EVENT_LAST:
break;
if (!relabel)
stopFlags |= VIR_QEMU_PROCESS_STOP_NO_RELABEL;
virDomainAuditStart(vm, "migrated", false);
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED,
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FAILED,
VIR_ASYNC_JOB_MIGRATION_IN, stopFlags);
virPortAllocatorRelease(priv->nbdPort);
priv->nbdPort = 0;
* up domain shutdown until SPICE server transfers its data */
qemuMigrationSrcWaitForSpice(vm);
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_MIGRATED, asyncJob,
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_MIGRATED, asyncJob,
VIR_QEMU_PROCESS_STOP_MIGRATED);
virDomainAuditStop(vm, "migrated");
* confirm step.
*/
if (!v3proto) {
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_MIGRATED,
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_MIGRATED,
VIR_ASYNC_JOB_MIGRATION_OUT,
VIR_QEMU_PROCESS_STOP_MIGRATED);
virDomainAuditStop(vm, "migrated");
if (qemuDomainObjIsActive(vm)) {
if (doKill) {
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED,
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FAILED,
VIR_ASYNC_JOB_MIGRATION_IN,
VIR_QEMU_PROCESS_STOP_MIGRATED);
virDomainAuditStop(vm, "failed");
stopFlags = VIR_QEMU_PROCESS_STOP_NO_RELABEL;
if (migration)
stopFlags |= VIR_QEMU_PROCESS_STOP_MIGRATED;
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED, asyncJob, stopFlags);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FAILED, asyncJob, stopFlags);
return -1;
}
stopFlags |= VIR_QEMU_PROCESS_STOP_MIGRATED;
if (priv->mon)
qemuMonitorSetDomainLog(priv->mon, NULL, NULL, NULL);
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED, asyncJob, stopFlags);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FAILED, asyncJob, stopFlags);
goto cleanup;
}
}
-void qemuProcessStop(virQEMUDriver *driver,
- virDomainObj *vm,
- virDomainShutoffReason reason,
- virDomainAsyncJob asyncJob,
- unsigned int flags)
+void
+qemuProcessStop(virDomainObj *vm,
+ virDomainShutoffReason reason,
+ virDomainAsyncJob asyncJob,
+ unsigned int flags)
{
int ret;
int retries = 0;
qemuDomainObjPrivate *priv = vm->privateData;
+ virQEMUDriver *driver = priv->driver;
virErrorPtr orig_err;
virDomainDef *def = vm->def;
size_t i;
if (qemuProcessBeginStopJob(dom, VIR_JOB_DESTROY, true) < 0)
return;
- qemuProcessStop(driver, dom, VIR_DOMAIN_SHUTOFF_DESTROYED,
+ qemuProcessStop(dom, VIR_DOMAIN_SHUTOFF_DESTROYED,
VIR_ASYNC_JOB_NONE, stopFlags);
virDomainAuditStop(dom, "destroyed");
* thread didn't have a chance to start playing with the domain yet
* (it's all we can do anyway).
*/
- qemuProcessStop(driver, obj, state, VIR_ASYNC_JOB_NONE, stopFlags);
+ qemuProcessStop(obj, state, VIR_ASYNC_JOB_NONE, stopFlags);
}
goto cleanup;
}
* is no thread that could be doing anything else with the same domain
* object.
*/
- qemuProcessStop(src->driver, obj, VIR_DOMAIN_SHUTOFF_FAILED,
+ qemuProcessStop(obj, VIR_DOMAIN_SHUTOFF_FAILED,
VIR_ASYNC_JOB_NONE, 0);
qemuDomainRemoveInactiveLocked(src->driver, obj);
virDomainJob job,
bool forceKill);
void qemuProcessEndStopJob(virDomainObj *vm);
-void qemuProcessStop(virQEMUDriver *driver,
- virDomainObj *vm,
+void qemuProcessStop(virDomainObj *vm,
virDomainShutoffReason reason,
virDomainAsyncJob asyncJob,
unsigned int flags);
cleanup:
if (ret < 0 && started) {
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED,
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FAILED,
asyncJob, VIR_QEMU_PROCESS_STOP_MIGRATED);
}
return ret;
if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_HALT) {
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT);
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT,
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT,
VIR_ASYNC_JOB_SNAPSHOT, 0);
virDomainAuditStop(vm, "from-snapshot");
resume = false;
if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_HALT) {
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT);
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT,
- VIR_ASYNC_JOB_SNAPSHOT, 0);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT, VIR_ASYNC_JOB_SNAPSHOT, 0);
virDomainAuditStop(vm, "from-snapshot");
resume = false;
thaw = false;
/* Transitions 2, 3, 5, 6, 8, 9 */
if (virDomainObjIsActive(vm)) {
/* Transitions 5, 6, 8, 9 */
- qemuProcessStop(driver, vm,
- VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT,
- VIR_ASYNC_JOB_SNAPSHOT, 0);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT, VIR_ASYNC_JOB_SNAPSHOT, 0);
virDomainAuditStop(vm, "from-snapshot");
detail = VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT;
event = virDomainEventLifecycleNewFromObj(vm,
start_flags, "from-snapshot",
&started) < 0) {
if (started) {
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED,
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FAILED,
VIR_ASYNC_JOB_SNAPSHOT,
VIR_QEMU_PROCESS_STOP_MIGRATED);
}
if (virDomainObjIsActive(vm)) {
/* Transitions 4, 7 */
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT,
- VIR_ASYNC_JOB_SNAPSHOT, 0);
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT, VIR_ASYNC_JOB_SNAPSHOT, 0);
virDomainAuditStop(vm, "from-snapshot");
detail = VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT;
event = virDomainEventLifecycleNewFromObj(vm,
virDomainMomentObj *snap = NULL;
bool metadata_only = !!(flags & VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY);
bool stop_qemu = false;
- qemuDomainObjPrivate *priv = vm->privateData;
- virQEMUDriver *driver = priv->driver;
g_autoslist(qemuSnapshotDeleteExternalData) externalData = NULL;
virCheckFlags(VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN |
endjob:
if (stop_qemu) {
- qemuProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN,
+ qemuProcessStop(vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN,
VIR_ASYNC_JOB_SNAPSHOT, 0);
}