mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
qemu: use qemuDomainSaveStatus() and remove qemuDomainObjSaveStatus()
It does not make sense to have both of these, since one of them is only a wrapper for the other one. I decided to preserve the more general one, which requires only virDomainObj and rewrote it a bit, so that it pulls the qemu driver from privateData. Signed-off-by: Kristina Hanicova <khanicov@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
4a46539d0a
commit
45dcb1a881
@ -294,7 +294,7 @@ Design patterns
|
||||
goto error;
|
||||
}
|
||||
...start qemu job...
|
||||
qemuDomainObjExitMonitor(driver, obj);
|
||||
qemuDomainObjExitMonitor(obj);
|
||||
|
||||
while (!finished) {
|
||||
if (qemuDomainObjEnterMonitorAsync(driver, obj,
|
||||
@ -303,7 +303,7 @@ Design patterns
|
||||
goto error;
|
||||
}
|
||||
...monitor job progress...
|
||||
qemuDomainObjExitMonitor(driver, obj);
|
||||
qemuDomainObjExitMonitor(obj);
|
||||
|
||||
virObjectUnlock(obj);
|
||||
sleep(aWhile);
|
||||
|
@ -132,7 +132,7 @@ qemuBackupDiskDataCleanupOne(virDomainObj *vm,
|
||||
if (dd->added) {
|
||||
qemuDomainObjEnterMonitor(priv->driver, vm);
|
||||
qemuBlockStorageSourceAttachRollback(priv->mon, dd->crdata->srcdata[0]);
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
if (dd->created) {
|
||||
@ -474,7 +474,7 @@ qemuBackupDiskPrepareOneStorage(virDomainObj *vm,
|
||||
|
||||
rc = qemuBlockStorageSourceAttachApply(priv->mon, dd->crdata->srcdata[0]);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
}
|
||||
@ -623,7 +623,7 @@ qemuBackupJobTerminate(virDomainObj *vm,
|
||||
g_clear_pointer(&priv->backup, virDomainBackupDefFree);
|
||||
|
||||
if (priv->job.asyncJob == QEMU_ASYNC_JOB_BACKUP)
|
||||
qemuDomainObjEndAsyncJob(priv->driver, vm);
|
||||
qemuDomainObjEndAsyncJob(vm);
|
||||
}
|
||||
|
||||
|
||||
@ -681,7 +681,7 @@ qemuBackupJobCancelBlockjobs(virDomainObj *vm,
|
||||
|
||||
rc = qemuMonitorBlockJobCancel(priv->mon, job->name, true);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc == 0) {
|
||||
backupdisk->state = VIR_DOMAIN_BACKUP_DISK_STATE_CANCELLING;
|
||||
@ -893,7 +893,7 @@ qemuBackupBegin(virDomainObj *vm,
|
||||
if (rc == 0)
|
||||
rc = qemuMonitorTransaction(priv->mon, &actions);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto endjob;
|
||||
|
||||
@ -915,7 +915,7 @@ qemuBackupBegin(virDomainObj *vm,
|
||||
/* note that if the export fails we've already created the checkpoint
|
||||
* and we will not delete it */
|
||||
rc = qemuBackupBeginPullExportDisks(vm, dd, ndd);
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0) {
|
||||
qemuBackupJobCancelBlockjobs(vm, priv->backup, false, QEMU_ASYNC_JOB_BACKUP);
|
||||
@ -939,7 +939,7 @@ qemuBackupBegin(virDomainObj *vm,
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, tlsAlias, false));
|
||||
if (tlsSecretAlias)
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, tlsSecretAlias, false));
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
if (ret < 0 && !job_started && priv->backup)
|
||||
@ -948,7 +948,7 @@ qemuBackupBegin(virDomainObj *vm,
|
||||
if (ret == 0)
|
||||
qemuDomainObjReleaseAsyncJob(vm);
|
||||
else
|
||||
qemuDomainObjEndAsyncJob(priv->driver, vm);
|
||||
qemuDomainObjEndAsyncJob(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -1007,7 +1007,7 @@ qemuBackupNotifyBlockjobEnd(virDomainObj *vm,
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, backup->tlsAlias, false));
|
||||
if (backup->tlsSecretAlias)
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, backup->tlsSecretAlias, false));
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
/* update the final statistics with the current job's data */
|
||||
backup->pull_tmp_used += cur;
|
||||
@ -1165,7 +1165,7 @@ qemuBackupGetJobInfoStats(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorGetJobInfo(priv->mon, &blockjobs, &nblockjobs);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
|
||||
|
@ -326,7 +326,7 @@ qemuBlockNodeNamesDetect(virQEMUDriver *driver,
|
||||
data = qemuMonitorQueryNamedBlockNodes(qemuDomainGetMonitor(vm));
|
||||
blockstats = qemuMonitorQueryBlockstats(qemuDomainGetMonitor(vm));
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (!data || !blockstats)
|
||||
return -1;
|
||||
@ -2133,7 +2133,7 @@ qemuBlockStorageSourceDetachOneBlockdev(virQEMUDriver *driver,
|
||||
if (ret == 0)
|
||||
ret = qemuMonitorBlockdevDel(qemuDomainGetMonitor(vm), src->nodestorage);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -2712,7 +2712,7 @@ qemuBlockStorageSourceCreateGeneric(virDomainObj *vm,
|
||||
|
||||
rc = qemuMonitorBlockdevCreate(priv->mon, job->name, &props);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -2859,7 +2859,7 @@ qemuBlockStorageSourceCreate(virDomainObj *vm,
|
||||
|
||||
rc = qemuBlockStorageSourceAttachApplyStorageDeps(priv->mon, data);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -2874,7 +2874,7 @@ qemuBlockStorageSourceCreate(virDomainObj *vm,
|
||||
if (rc == 0)
|
||||
rc = qemuBlockStorageSourceAttachApplyFormatDeps(priv->mon, data);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -2893,7 +2893,7 @@ qemuBlockStorageSourceCreate(virDomainObj *vm,
|
||||
|
||||
rc = qemuBlockStorageSourceAttachApplyFormat(priv->mon, data);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -2905,7 +2905,7 @@ qemuBlockStorageSourceCreate(virDomainObj *vm,
|
||||
qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) == 0) {
|
||||
|
||||
qemuBlockStorageSourceAttachRollback(priv->mon, data);
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -3033,7 +3033,7 @@ qemuBlockGetNamedNodeData(virDomainObj *vm,
|
||||
|
||||
blockNamedNodeData = qemuMonitorBlockGetNamedNodeData(priv->mon, supports_flat);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (!blockNamedNodeData)
|
||||
return NULL;
|
||||
@ -3391,7 +3391,7 @@ qemuBlockReopenFormat(virDomainObj *vm,
|
||||
|
||||
rc = qemuBlockReopenFormatMon(priv->mon, src);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
|
@ -504,7 +504,7 @@ qemuBlockJobRefreshJobs(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorGetJobInfo(priv->mon, &jobinfo, &njobinfo);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -528,7 +528,7 @@ qemuBlockJobRefreshJobs(virQEMUDriver *driver,
|
||||
if (rc == -1 && jobinfo[i]->status == QEMU_MONITOR_JOB_STATUS_CONCLUDED)
|
||||
VIR_WARN("can't cancel job '%s' with invalid data", job->name);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
qemuBlockJobUnregister(job, vm);
|
||||
@ -852,7 +852,7 @@ qemuBlockJobEventProcessConcludedRemoveChain(virQEMUDriver *driver,
|
||||
|
||||
qemuBlockStorageSourceChainDetach(qemuDomainGetMonitor(vm), data);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
qemuDomainStorageSourceChainAccessRevoke(driver, vm, chain);
|
||||
}
|
||||
@ -967,7 +967,7 @@ qemuBlockJobProcessEventCompletedPullBitmaps(virDomainObj *vm,
|
||||
|
||||
qemuMonitorTransaction(priv->mon, &actions);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1140,7 +1140,7 @@ qemuBlockJobProcessEventCompletedCommitBitmaps(virDomainObj *vm,
|
||||
|
||||
qemuMonitorTransaction(priv->mon, &actions);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (!active) {
|
||||
if (qemuBlockReopenReadOnly(vm, job->data.commit.base, asyncJob) < 0)
|
||||
@ -1357,7 +1357,7 @@ qemuBlockJobProcessEventCompletedCopyBitmaps(virDomainObj *vm,
|
||||
|
||||
qemuMonitorTransaction(priv->mon, &actions);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1455,7 +1455,7 @@ qemuBlockJobProcessEventFailedActiveCommit(virQEMUDriver *driver,
|
||||
disk->mirror->nodeformat,
|
||||
"libvirt-tmp-activewrite");
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
/* Ideally, we would make the backing chain read only again (yes, SELinux
|
||||
* can do that using different labels). But that is not implemented yet and
|
||||
@ -1501,7 +1501,7 @@ qemuBlockJobProcessEventConcludedCreate(virQEMUDriver *driver,
|
||||
|
||||
qemuBlockStorageSourceAttachRollback(qemuDomainGetMonitor(vm), backend);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
qemuDomainStorageSourceAccessRevoke(driver, vm, job->data.create.src);
|
||||
}
|
||||
@ -1536,7 +1536,7 @@ qemuBlockJobProcessEventConcludedBackup(virQEMUDriver *driver,
|
||||
job->disk->src->nodeformat,
|
||||
job->data.backup.bitmap);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (job->data.backup.store)
|
||||
qemuDomainStorageSourceAccessRevoke(driver, vm, job->data.backup.store);
|
||||
@ -1649,7 +1649,7 @@ qemuBlockJobEventProcessConcluded(qemuBlockJobData *job,
|
||||
/* dismiss job in qemu */
|
||||
ignore_value(qemuMonitorJobDismiss(qemuDomainGetMonitor(vm), job->name));
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if ((job->newstate == QEMU_BLOCKJOB_STATE_COMPLETED ||
|
||||
job->newstate == QEMU_BLOCKJOB_STATE_FAILED) &&
|
||||
|
@ -237,7 +237,7 @@ qemuCheckpointDiscardBitmaps(virDomainObj *vm,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorTransaction(priv->mon, &actions);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
relabel:
|
||||
for (next = relabelimages; next; next = next->next) {
|
||||
@ -524,7 +524,7 @@ qemuCheckpointCreate(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorTransaction(qemuDomainGetMonitor(vm), &actions);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0) {
|
||||
qemuCheckpointRollbackMetadata(vm, chk);
|
||||
return NULL;
|
||||
@ -629,7 +629,7 @@ qemuCheckpointCreateXML(virDomainPtr domain,
|
||||
checkpoint = virGetDomainCheckpoint(domain, chk->def->name);
|
||||
|
||||
endjob:
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
|
||||
return checkpoint;
|
||||
}
|
||||
@ -736,7 +736,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObj *vm,
|
||||
if (rc == 0)
|
||||
rc = qemuMonitorTransaction(priv->mon, &mergeactions);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto endjob;
|
||||
|
||||
@ -748,7 +748,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObj *vm,
|
||||
|
||||
rc = qemuMonitorTransaction(priv->mon, &cleanupactions);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto endjob;
|
||||
|
||||
@ -768,7 +768,7 @@ qemuCheckpointGetXMLDescUpdateSize(virDomainObj *vm,
|
||||
ret = 0;
|
||||
|
||||
endjob:
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -921,6 +921,6 @@ qemuCheckpointDelete(virDomainObj *vm,
|
||||
}
|
||||
|
||||
endjob:
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
return ret;
|
||||
}
|
||||
|
@ -5822,9 +5822,10 @@ virDomainDefParserConfig virQEMUDriverDomainDefParserConfig = {
|
||||
|
||||
|
||||
void
|
||||
qemuDomainObjSaveStatus(virQEMUDriver *driver,
|
||||
virDomainObj *obj)
|
||||
qemuDomainSaveStatus(virDomainObj *obj)
|
||||
{
|
||||
qemuDomainObjPrivate *priv = obj->privateData;
|
||||
virQEMUDriver *driver = priv->driver;
|
||||
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
||||
|
||||
if (virDomainObjIsActive(obj)) {
|
||||
@ -5834,13 +5835,6 @@ qemuDomainObjSaveStatus(virQEMUDriver *driver,
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
qemuDomainSaveStatus(virDomainObj *obj)
|
||||
{
|
||||
qemuDomainObjSaveStatus(QEMU_DOMAIN_PRIVATE(obj)->driver, obj);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
qemuDomainSaveConfig(virDomainObj *obj)
|
||||
{
|
||||
@ -5887,7 +5881,7 @@ qemuDomainObjEnterMonitorInternal(virQEMUDriver *driver,
|
||||
if (!virDomainObjIsActive(obj)) {
|
||||
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
|
||||
_("domain is no longer running"));
|
||||
qemuDomainObjEndJob(driver, obj);
|
||||
qemuDomainObjEndJob(obj);
|
||||
return -1;
|
||||
}
|
||||
} else if (priv->job.asyncOwner == virThreadSelfID()) {
|
||||
@ -5916,8 +5910,7 @@ qemuDomainObjEnterMonitorInternal(virQEMUDriver *driver,
|
||||
*
|
||||
*/
|
||||
void
|
||||
qemuDomainObjExitMonitor(virQEMUDriver *driver,
|
||||
virDomainObj *obj)
|
||||
qemuDomainObjExitMonitor(virDomainObj *obj)
|
||||
{
|
||||
qemuDomainObjPrivate *priv = obj->privateData;
|
||||
bool hasRefs;
|
||||
@ -5938,7 +5931,7 @@ qemuDomainObjExitMonitor(virQEMUDriver *driver,
|
||||
priv->mon = NULL;
|
||||
|
||||
if (priv->job.active == QEMU_JOB_ASYNC_NESTED)
|
||||
qemuDomainObjEndJob(driver, obj);
|
||||
qemuDomainObjEndJob(obj);
|
||||
}
|
||||
|
||||
void qemuDomainObjEnterMonitor(virQEMUDriver *driver,
|
||||
@ -7004,7 +6997,7 @@ qemuDomainSnapshotDiscard(virQEMUDriver *driver,
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
/* we continue on even in the face of error */
|
||||
qemuMonitorDeleteSnapshot(priv->mon, snap->def->name);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7169,7 +7162,7 @@ qemuDomainRemoveInactiveJob(virQEMUDriver *driver,
|
||||
qemuDomainRemoveInactive(driver, vm);
|
||||
|
||||
if (haveJob)
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
}
|
||||
|
||||
|
||||
@ -7190,7 +7183,7 @@ qemuDomainRemoveInactiveJobLocked(virQEMUDriver *driver,
|
||||
qemuDomainRemoveInactiveLocked(driver, vm);
|
||||
|
||||
if (haveJob)
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
}
|
||||
|
||||
|
||||
@ -8213,7 +8206,7 @@ qemuDomainUpdateDeviceList(virQEMUDriver *driver,
|
||||
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
|
||||
return -1;
|
||||
rc = qemuMonitorGetDeviceAliases(priv->mon, &aliases);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -8241,7 +8234,7 @@ qemuDomainUpdateMemoryDeviceInfo(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorGetMemoryDeviceInfo(priv->mon, &meminfo);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
@ -9515,7 +9508,7 @@ qemuDomainRefreshVcpuInfo(virQEMUDriver *driver,
|
||||
rc = qemuMonitorGetCPUInfo(qemuDomainGetMonitor(vm), &info, maxvcpus,
|
||||
hotplug, fast);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
@ -9669,7 +9662,7 @@ qemuDomainRefreshVcpuHalted(virQEMUDriver *driver,
|
||||
QEMU_CAPS_QUERY_CPUS_FAST);
|
||||
haltedmap = qemuMonitorGetCpuHalted(qemuDomainGetMonitor(vm), maxvcpus,
|
||||
fast);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (!haltedmap)
|
||||
return -1;
|
||||
@ -10100,7 +10093,7 @@ qemuDomainCheckMonitor(virQEMUDriver *driver,
|
||||
|
||||
ret = qemuMonitorCheck(priv->mon);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -61,10 +61,6 @@ typedef void (*qemuDomainCleanupCallback)(virQEMUDriver *driver,
|
||||
|
||||
#define QEMU_DOMAIN_MASTER_KEY_LEN 32 /* 32 bytes for 256 bit random key */
|
||||
|
||||
void
|
||||
qemuDomainObjSaveStatus(virQEMUDriver *driver,
|
||||
virDomainObj *obj);
|
||||
|
||||
void qemuDomainSaveStatus(virDomainObj *obj);
|
||||
void qemuDomainSaveConfig(virDomainObj *obj);
|
||||
|
||||
@ -500,8 +496,7 @@ qemuMonitor *qemuDomainGetMonitor(virDomainObj *vm)
|
||||
void qemuDomainObjEnterMonitor(virQEMUDriver *driver,
|
||||
virDomainObj *obj)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||
void qemuDomainObjExitMonitor(virQEMUDriver *driver,
|
||||
virDomainObj *obj)
|
||||
void qemuDomainObjExitMonitor(virDomainObj *obj)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||
int qemuDomainObjEnterMonitorAsync(virQEMUDriver *driver,
|
||||
virDomainObj *obj,
|
||||
|
@ -703,8 +703,7 @@ qemuDomainJobDataToParams(virDomainJobData *jobData,
|
||||
|
||||
|
||||
void
|
||||
qemuDomainObjSetJobPhase(virQEMUDriver *driver,
|
||||
virDomainObj *obj,
|
||||
qemuDomainObjSetJobPhase(virDomainObj *obj,
|
||||
int phase)
|
||||
{
|
||||
qemuDomainObjPrivate *priv = obj->privateData;
|
||||
@ -727,7 +726,7 @@ qemuDomainObjSetJobPhase(virQEMUDriver *driver,
|
||||
|
||||
priv->job.phase = phase;
|
||||
priv->job.asyncOwner = me;
|
||||
qemuDomainObjSaveStatus(driver, obj);
|
||||
qemuDomainSaveStatus(obj);
|
||||
}
|
||||
|
||||
void
|
||||
@ -743,14 +742,14 @@ qemuDomainObjSetAsyncJobMask(virDomainObj *obj,
|
||||
}
|
||||
|
||||
void
|
||||
qemuDomainObjDiscardAsyncJob(virQEMUDriver *driver, virDomainObj *obj)
|
||||
qemuDomainObjDiscardAsyncJob(virDomainObj *obj)
|
||||
{
|
||||
qemuDomainObjPrivate *priv = obj->privateData;
|
||||
|
||||
if (priv->job.active == QEMU_JOB_ASYNC_NESTED)
|
||||
qemuDomainObjResetJob(&priv->job);
|
||||
qemuDomainObjResetAsyncJob(&priv->job);
|
||||
qemuDomainObjSaveStatus(driver, obj);
|
||||
qemuDomainSaveStatus(obj);
|
||||
}
|
||||
|
||||
void
|
||||
@ -926,7 +925,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriver *driver,
|
||||
}
|
||||
|
||||
if (qemuDomainTrackJob(job))
|
||||
qemuDomainObjSaveStatus(driver, obj);
|
||||
qemuDomainSaveStatus(obj);
|
||||
|
||||
return 0;
|
||||
|
||||
@ -1134,7 +1133,7 @@ qemuDomainObjBeginJobNowait(virQEMUDriver *driver,
|
||||
* earlier qemuDomainBeginJob() call
|
||||
*/
|
||||
void
|
||||
qemuDomainObjEndJob(virQEMUDriver *driver, virDomainObj *obj)
|
||||
qemuDomainObjEndJob(virDomainObj *obj)
|
||||
{
|
||||
qemuDomainObjPrivate *priv = obj->privateData;
|
||||
qemuDomainJob job = priv->job.active;
|
||||
@ -1148,7 +1147,7 @@ qemuDomainObjEndJob(virQEMUDriver *driver, virDomainObj *obj)
|
||||
|
||||
qemuDomainObjResetJob(&priv->job);
|
||||
if (qemuDomainTrackJob(job))
|
||||
qemuDomainObjSaveStatus(driver, obj);
|
||||
qemuDomainSaveStatus(obj);
|
||||
/* We indeed need to wake up ALL threads waiting because
|
||||
* grabbing a job requires checking more variables. */
|
||||
virCondBroadcast(&priv->job.cond);
|
||||
@ -1174,7 +1173,7 @@ qemuDomainObjEndAgentJob(virDomainObj *obj)
|
||||
}
|
||||
|
||||
void
|
||||
qemuDomainObjEndAsyncJob(virQEMUDriver *driver, virDomainObj *obj)
|
||||
qemuDomainObjEndAsyncJob(virDomainObj *obj)
|
||||
{
|
||||
qemuDomainObjPrivate *priv = obj->privateData;
|
||||
|
||||
@ -1185,7 +1184,7 @@ qemuDomainObjEndAsyncJob(virQEMUDriver *driver, virDomainObj *obj)
|
||||
obj, obj->def->name);
|
||||
|
||||
qemuDomainObjResetAsyncJob(&priv->job);
|
||||
qemuDomainObjSaveStatus(driver, obj);
|
||||
qemuDomainSaveStatus(obj);
|
||||
virCondBroadcast(&priv->job.asyncCond);
|
||||
}
|
||||
|
||||
|
@ -208,21 +208,17 @@ int qemuDomainObjBeginJobNowait(virQEMUDriver *driver,
|
||||
qemuDomainJob job)
|
||||
G_GNUC_WARN_UNUSED_RESULT;
|
||||
|
||||
void qemuDomainObjEndJob(virQEMUDriver *driver,
|
||||
virDomainObj *obj);
|
||||
void qemuDomainObjEndJob(virDomainObj *obj);
|
||||
void qemuDomainObjEndAgentJob(virDomainObj *obj);
|
||||
void qemuDomainObjEndAsyncJob(virQEMUDriver *driver,
|
||||
virDomainObj *obj);
|
||||
void qemuDomainObjEndAsyncJob(virDomainObj *obj);
|
||||
void qemuDomainObjAbortAsyncJob(virDomainObj *obj);
|
||||
void qemuDomainObjSetJobPhase(virQEMUDriver *driver,
|
||||
virDomainObj *obj,
|
||||
void qemuDomainObjSetJobPhase(virDomainObj *obj,
|
||||
int phase);
|
||||
void qemuDomainObjSetAsyncJobMask(virDomainObj *obj,
|
||||
unsigned long long allowedJobs);
|
||||
int qemuDomainObjRestoreJob(virDomainObj *obj,
|
||||
qemuDomainJobObj *job);
|
||||
void qemuDomainObjDiscardAsyncJob(virQEMUDriver *driver,
|
||||
virDomainObj *obj);
|
||||
void qemuDomainObjDiscardAsyncJob(virDomainObj *obj);
|
||||
void qemuDomainObjReleaseAsyncJob(virDomainObj *obj);
|
||||
|
||||
int qemuDomainJobDataUpdateTime(virDomainJobData *jobData)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -110,7 +110,7 @@ qemuDomainDeleteDevice(virDomainObj *vm,
|
||||
|
||||
rc = qemuMonitorDelDevice(priv->mon, alias);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0) {
|
||||
/* Deleting device failed. Let's check if DEVICE_DELETED
|
||||
@ -313,7 +313,7 @@ qemuDomainChangeMediaLegacy(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorEjectMedia(priv->mon, driveAlias, force);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
/* If the tray is present wait for it to open. */
|
||||
if (!force && diskPriv->tray) {
|
||||
@ -324,7 +324,7 @@ qemuDomainChangeMediaLegacy(virQEMUDriver *driver,
|
||||
/* re-issue ejection command to pop out the media */
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorEjectMedia(priv->mon, driveAlias, false);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -346,7 +346,7 @@ qemuDomainChangeMediaLegacy(virQEMUDriver *driver,
|
||||
driveAlias,
|
||||
sourcestr,
|
||||
format);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
if (rc < 0)
|
||||
@ -394,7 +394,7 @@ qemuHotplugAttachDBusVMState(virQEMUDriver *driver,
|
||||
if (ret == 0)
|
||||
priv->dbusVMState = true;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -430,7 +430,7 @@ qemuHotplugRemoveDBusVMState(virQEMUDriver *driver,
|
||||
if (ret == 0)
|
||||
priv->dbusVMState = false;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -477,7 +477,7 @@ qemuHotplugAttachManagedPR(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorAddObject(priv->mon, &props, NULL);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -517,7 +517,7 @@ qemuHotplugRemoveManagedPR(virQEMUDriver *driver,
|
||||
goto cleanup;
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, qemuDomainGetManagedPRAlias(),
|
||||
false));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
qemuProcessKillManagedPRDaemon(vm);
|
||||
|
||||
@ -574,7 +574,7 @@ qemuDomainChangeMediaBlockdev(virQEMUDriver *driver,
|
||||
if (diskPriv->tray && disk->tray_status != VIR_DOMAIN_DISK_TRAY_OPEN) {
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorBlockdevTrayOpen(priv->mon, diskPriv->qomName, force);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -613,7 +613,7 @@ qemuDomainChangeMediaBlockdev(virQEMUDriver *driver,
|
||||
if (rc < 0 && newbackend)
|
||||
qemuBlockStorageSourceChainDetach(priv->mon, newbackend);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -782,7 +782,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuBlockStorageSourceChainAttach(priv->mon, data);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
goto rollback;
|
||||
@ -832,7 +832,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriver *driver,
|
||||
VIR_WARN("failed to set blkdeviotune for '%s' of '%s'", disk->dst, vm->def->name);
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
goto rollback;
|
||||
@ -848,7 +848,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriver *driver,
|
||||
|
||||
qemuBlockStorageSourceChainDetach(priv->mon, data);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return -1;
|
||||
}
|
||||
@ -912,7 +912,7 @@ int qemuDomainAttachControllerDevice(virQEMUDriver *driver,
|
||||
ignore_value(qemuDomainDetachExtensionDevice(priv->mon, &controller->info));
|
||||
|
||||
exit_monitor:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (ret == 0)
|
||||
virDomainControllerInsertPreAlloced(vm->def, controller);
|
||||
@ -1461,7 +1461,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
|
||||
if (qemuMonitorAddFileHandleToSet(priv->mon, vdpafd, -1,
|
||||
net->data.vdpa.devicepath,
|
||||
&fdinfo) < 0) {
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
goto cleanup;
|
||||
}
|
||||
vdpafdName = g_strdup_printf("/dev/fdset/%d", fdinfo.fdset);
|
||||
@ -1471,13 +1471,13 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
|
||||
tapfdName, tapfdSize,
|
||||
vhostfdName, vhostfdSize,
|
||||
slirpfdName, vdpafdName))) {
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
|
||||
if (qemuHotplugChardevAttach(priv->mon, charDevAlias, net->data.vhostuser) < 0) {
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virDomainAuditNet(vm, NULL, net, "attach", false);
|
||||
goto cleanup;
|
||||
}
|
||||
@ -1488,13 +1488,13 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
|
||||
tapfd, tapfdName, tapfdSize,
|
||||
vhostfd, vhostfdName, vhostfdSize,
|
||||
slirpfd, slirpfdName) < 0) {
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virDomainAuditNet(vm, NULL, net, "attach", false);
|
||||
goto try_remove;
|
||||
}
|
||||
netdevPlugged = true;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
for (i = 0; i < tapfdSize; i++)
|
||||
VIR_FORCE_CLOSE(tapfd[i]);
|
||||
@ -1507,18 +1507,18 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
|
||||
if (qemuDomainAttachExtensionDevice(priv->mon, &net->info) < 0) {
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virDomainAuditNet(vm, NULL, net, "attach", false);
|
||||
goto try_remove;
|
||||
}
|
||||
|
||||
if (qemuMonitorAddDeviceProps(priv->mon, &nicprops) < 0) {
|
||||
ignore_value(qemuDomainDetachExtensionDevice(priv->mon, &net->info));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virDomainAuditNet(vm, NULL, net, "attach", false);
|
||||
goto try_remove;
|
||||
}
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
/* set link state */
|
||||
if (net->linkstate == VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN) {
|
||||
@ -1529,12 +1529,12 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
|
||||
if (qemuMonitorSetLink(priv->mon, net->info.alias, VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN) < 0) {
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virDomainAuditNet(vm, NULL, net, "attach", false);
|
||||
goto try_remove;
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
/* link set to down */
|
||||
}
|
||||
@ -1628,7 +1628,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver,
|
||||
qemuMonitorRemoveNetdev(priv->mon, netdev_name) < 0)
|
||||
VIR_WARN("Failed to remove network backend for netdev %s",
|
||||
netdev_name);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virErrorRestore(&originalError);
|
||||
goto cleanup;
|
||||
}
|
||||
@ -1739,7 +1739,7 @@ qemuDomainAttachHostPCIDevice(virQEMUDriver *driver,
|
||||
ignore_value(qemuDomainDetachExtensionDevice(priv->mon, hostdev->info));
|
||||
|
||||
exit_monitor:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
done:
|
||||
virDomainAuditHostdev(vm, hostdev, "attach", ret == 0);
|
||||
@ -1795,7 +1795,7 @@ qemuDomainDelTLSObjects(virQEMUDriver *driver,
|
||||
if (secAlias)
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, secAlias, false));
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
cleanup:
|
||||
virErrorRestore(&orig_err);
|
||||
@ -1827,12 +1827,12 @@ qemuDomainAddTLSObjects(virQEMUDriver *driver,
|
||||
qemuMonitorAddObject(priv->mon, tlsProps, NULL) < 0)
|
||||
goto error;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
return 0;
|
||||
|
||||
error:
|
||||
virErrorPreserveLast(&orig_err);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virErrorRestore(&orig_err);
|
||||
qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, NULL);
|
||||
|
||||
@ -1948,7 +1948,7 @@ qemuDomainDelChardevTLSObjects(virQEMUDriver *driver,
|
||||
if (secAlias)
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, secAlias, false));
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1995,7 +1995,7 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriver *driver,
|
||||
if (qemuMonitorAddDeviceProps(priv->mon, &devprops) < 0)
|
||||
goto exit_monitor;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
def->redirdevs[def->nredirdevs++] = redirdev;
|
||||
ret = 0;
|
||||
@ -2011,7 +2011,7 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriver *driver,
|
||||
/* detach associated chardev on error */
|
||||
if (chardevAdded)
|
||||
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virErrorRestore(&orig_err);
|
||||
qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE,
|
||||
secAlias, tlsAlias);
|
||||
@ -2238,7 +2238,7 @@ qemuDomainAttachChrDevice(virQEMUDriver *driver,
|
||||
qemuFDPassTransferMonitor(charpriv->logfd, priv->mon) < 0)
|
||||
goto exit_monitor;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
if (guestfwd) {
|
||||
@ -2277,7 +2277,7 @@ qemuDomainAttachChrDevice(virQEMUDriver *driver,
|
||||
goto exit_monitor;
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
qemuDomainChrInsertPreAlloced(vmdef, chr);
|
||||
ret = 0;
|
||||
@ -2305,7 +2305,7 @@ qemuDomainAttachChrDevice(virQEMUDriver *driver,
|
||||
qemuMonitorDetachCharDev(priv->mon, charAlias);
|
||||
qemuFDPassTransferMonitorRollback(charpriv->sourcefd, priv->mon);
|
||||
qemuFDPassTransferMonitorRollback(charpriv->logfd, priv->mon);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virErrorRestore(&orig_err);
|
||||
|
||||
qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE,
|
||||
@ -2385,7 +2385,7 @@ qemuDomainAttachRNGDevice(virQEMUDriver *driver,
|
||||
goto exit_monitor;
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
VIR_APPEND_ELEMENT_INPLACE(vm->def->rngs, vm->def->nrngs, rng);
|
||||
|
||||
@ -2411,7 +2411,7 @@ qemuDomainAttachRNGDevice(virQEMUDriver *driver,
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, objAlias, false));
|
||||
if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD && chardevAdded)
|
||||
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virErrorRestore(&orig_err);
|
||||
|
||||
qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE,
|
||||
@ -2504,7 +2504,7 @@ qemuDomainAttachMemory(virQEMUDriver *driver,
|
||||
if (qemuMonitorAddDeviceProps(priv->mon, &devprops) < 0)
|
||||
goto exit_monitor;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
event = virDomainEventDeviceAddedNewFromObj(vm, objalias);
|
||||
virObjectEventStateQueue(driver->domainEventState, event);
|
||||
@ -2543,7 +2543,7 @@ qemuDomainAttachMemory(virQEMUDriver *driver,
|
||||
virErrorPreserveLast(&orig_err);
|
||||
if (objAdded)
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, objalias, false));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (objAdded && mem)
|
||||
ignore_value(qemuProcessDestroyMemoryBackingPath(driver, vm, mem));
|
||||
@ -2608,7 +2608,7 @@ qemuDomainAttachHostUSBDevice(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
ret = qemuMonitorAddDeviceProps(priv->mon, &devprops);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virDomainAuditHostdev(vm, hostdev, "attach", ret == 0);
|
||||
if (ret < 0)
|
||||
goto cleanup;
|
||||
@ -2701,7 +2701,7 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriver *driver,
|
||||
if (qemuMonitorAddDeviceProps(priv->mon, &devprops) < 0)
|
||||
goto exit_monitor;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
virDomainAuditHostdev(vm, hostdev, "attach", true);
|
||||
|
||||
@ -2727,7 +2727,7 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriver *driver,
|
||||
exit_monitor:
|
||||
virErrorPreserveLast(&orig_err);
|
||||
qemuBlockStorageSourceAttachRollback(priv->mon, data);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virErrorRestore(&orig_err);
|
||||
|
||||
virDomainAuditHostdev(vm, hostdev, "attach", false);
|
||||
@ -2826,7 +2826,7 @@ qemuDomainAttachSCSIVHostDevice(virQEMUDriver *driver,
|
||||
ignore_value(qemuMonitorCloseFileHandle(priv->mon, vhostfdName));
|
||||
if (removeextension)
|
||||
ignore_value(qemuDomainDetachExtensionDevice(priv->mon, hostdev->info));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (ret < 0)
|
||||
goto audit;
|
||||
|
||||
@ -2920,7 +2920,7 @@ qemuDomainAttachMediatedDevice(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
ret = qemuMonitorAddDeviceProps(priv->mon, &devprops);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
virDomainAuditHostdev(vm, hostdev, "attach", ret == 0);
|
||||
if (ret < 0)
|
||||
@ -3074,7 +3074,7 @@ qemuDomainAttachShmemDevice(virQEMUDriver *driver,
|
||||
goto exit_monitor;
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
/* Doing a copy here just so the pointer doesn't get nullified
|
||||
* because we need it in the audit function */
|
||||
@ -3101,7 +3101,7 @@ qemuDomainAttachShmemDevice(virQEMUDriver *driver,
|
||||
ignore_value(qemuMonitorDelObject(priv->mon, memAlias, false));
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
virErrorRestore(&orig_err);
|
||||
|
||||
@ -3200,7 +3200,7 @@ qemuDomainAttachWatchdog(virQEMUDriver *driver,
|
||||
if (rv >= 0)
|
||||
rv = qemuMonitorAddDeviceProps(priv->mon, &props);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rv < 0)
|
||||
goto cleanup;
|
||||
@ -3287,7 +3287,7 @@ qemuDomainAttachInputDevice(virQEMUDriver *driver,
|
||||
goto exit_monitor;
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
VIR_APPEND_ELEMENT_COPY_INPLACE(vm->def->inputs, vm->def->ninputs, input);
|
||||
|
||||
@ -3313,7 +3313,7 @@ qemuDomainAttachInputDevice(virQEMUDriver *driver,
|
||||
return ret;
|
||||
|
||||
exit_monitor:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
goto audit;
|
||||
}
|
||||
|
||||
@ -3370,7 +3370,7 @@ qemuDomainAttachVsockDevice(virQEMUDriver *driver,
|
||||
if ((ret = qemuMonitorAddDeviceProps(priv->mon, &devprops)) < 0)
|
||||
goto exit_monitor;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
vm->def->vsock = g_steal_pointer(&vsock);
|
||||
|
||||
@ -3391,7 +3391,7 @@ qemuDomainAttachVsockDevice(virQEMUDriver *driver,
|
||||
ignore_value(qemuMonitorCloseFileHandle(priv->mon, fdname));
|
||||
if (removeextension)
|
||||
ignore_value(qemuDomainDetachExtensionDevice(priv->mon, &vsock->info));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -3459,7 +3459,7 @@ qemuDomainAttachFSDevice(virQEMUDriver *driver,
|
||||
goto exit_monitor;
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
VIR_APPEND_ELEMENT_COPY(vm->def->fss, vm->def->nfss, fs);
|
||||
|
||||
@ -3483,7 +3483,7 @@ qemuDomainAttachFSDevice(virQEMUDriver *driver,
|
||||
virErrorPreserveLast(&origErr);
|
||||
if (chardevAdded)
|
||||
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virErrorRestore(&origErr);
|
||||
goto audit;
|
||||
}
|
||||
@ -3652,7 +3652,7 @@ int qemuDomainChangeNetLinkState(virQEMUDriver *driver,
|
||||
dev->linkstate = linkstate;
|
||||
|
||||
cleanup:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -4246,7 +4246,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriver *driver,
|
||||
ret = qemuMonitorExpirePassword(priv->mon, type, expire);
|
||||
|
||||
end_job:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -4521,7 +4521,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriver *driver,
|
||||
if (diskBackend)
|
||||
qemuBlockStorageSourceChainDetach(priv->mon, diskBackend);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
virDomainAuditDisk(vm, disk->src, NULL, "detach", true);
|
||||
|
||||
@ -4593,7 +4593,7 @@ qemuDomainRemoveMemoryDevice(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorDelObject(priv->mon, backendAlias, true);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
virDomainAuditMemory(vm, oldmem, newmem, "update", rc == 0);
|
||||
if (rc < 0)
|
||||
@ -4692,7 +4692,7 @@ qemuDomainRemoveHostDevice(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
qemuBlockStorageSourceAttachRollback(priv->mon, detachscsi);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
if (hostdev->parentnet) {
|
||||
@ -4809,7 +4809,7 @@ qemuDomainRemoveNetDevice(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
if (qemuMonitorRemoveNetdev(priv->mon, hostnet_name) < 0) {
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
virDomainAuditNet(vm, net, NULL, "detach", false);
|
||||
return -1;
|
||||
}
|
||||
@ -4826,7 +4826,7 @@ qemuDomainRemoveNetDevice(virQEMUDriver *driver,
|
||||
qemuHotplugRemoveFDSet(priv->mon, net->info.alias, net->data.vdpa.devicepath);
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp)
|
||||
qemuSlirpStop(QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp, vm, driver, net);
|
||||
@ -4901,7 +4901,7 @@ qemuDomainRemoveChrDevice(virQEMUDriver *driver,
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorDetachCharDev(priv->mon, charAlias);
|
||||
qemuHotplugRemoveFDSet(priv->mon, chr->info.alias, NULL);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
if (rc == 0 &&
|
||||
@ -4967,7 +4967,7 @@ qemuDomainRemoveRNGDevice(virQEMUDriver *driver,
|
||||
qemuMonitorDetachCharDev(priv->mon, charAlias) < 0)
|
||||
rc = -1;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD &&
|
||||
rc == 0 &&
|
||||
@ -5021,7 +5021,7 @@ qemuDomainRemoveShmemDevice(virQEMUDriver *driver,
|
||||
else
|
||||
rc = qemuMonitorDelObject(priv->mon, memAlias, true);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
virDomainAuditShmem(vm, shmem, "detach", rc == 0);
|
||||
|
||||
@ -5113,7 +5113,7 @@ qemuDomainRemoveRedirdevDevice(virQEMUDriver *driver,
|
||||
*/
|
||||
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (qemuDomainDelChardevTLSObjects(driver, vm, dev->source, charAlias) < 0)
|
||||
return -1;
|
||||
@ -5150,7 +5150,7 @@ qemuDomainRemoveFSDevice(virQEMUDriver *driver,
|
||||
if (qemuMonitorDetachCharDev(priv->mon, charAlias) < 0)
|
||||
rc = -1;
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
virDomainAuditFS(vm, fs, NULL, "detach", rc == 0);
|
||||
@ -5891,7 +5891,7 @@ qemuDomainDetachDeviceChr(virQEMUDriver *driver,
|
||||
int rc;
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorRemoveNetdev(priv->mon, tmpChr->info.alias);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
@ -6431,7 +6431,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorAddDeviceProps(qemuDomainGetMonitor(vm), &vcpuprops);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
virDomainAuditVcpu(vm, oldvcpus, oldvcpus + nvcpus, "update", rc == 0);
|
||||
|
||||
@ -6913,7 +6913,7 @@ qemuDomainChangeMemoryRequestedSize(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorChangeMemoryRequestedSize(priv->mon, alias, requestedsize);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@ -89,16 +89,14 @@ qemuMigrationJobStart(virQEMUDriver *driver,
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
|
||||
|
||||
static void
|
||||
qemuMigrationJobSetPhase(virQEMUDriver *driver,
|
||||
virDomainObj *vm,
|
||||
qemuMigrationJobSetPhase(virDomainObj *vm,
|
||||
qemuMigrationJobPhase phase)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||
ATTRIBUTE_NONNULL(1);
|
||||
|
||||
static void
|
||||
qemuMigrationJobStartPhase(virQEMUDriver *driver,
|
||||
virDomainObj *vm,
|
||||
qemuMigrationJobStartPhase(virDomainObj *vm,
|
||||
qemuMigrationJobPhase phase)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||
ATTRIBUTE_NONNULL(1);
|
||||
|
||||
static void
|
||||
qemuMigrationJobContinue(virDomainObj *obj)
|
||||
@ -110,9 +108,8 @@ qemuMigrationJobIsActive(virDomainObj *vm,
|
||||
ATTRIBUTE_NONNULL(1);
|
||||
|
||||
static void
|
||||
qemuMigrationJobFinish(virQEMUDriver *driver,
|
||||
virDomainObj *obj)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||
qemuMigrationJobFinish(virDomainObj *obj)
|
||||
ATTRIBUTE_NONNULL(1);
|
||||
|
||||
static void
|
||||
qemuMigrationSrcStoreDomainState(virDomainObj *vm)
|
||||
@ -515,7 +512,7 @@ qemuMigrationDstStartNBDServer(virQEMUDriver *driver,
|
||||
|
||||
if (qemuBlockExportAddNBD(vm, diskAlias, disk->src, diskAlias, true, NULL) < 0)
|
||||
goto exit_monitor;
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
if (server.transport == VIR_STORAGE_NET_HOST_TRANS_TCP)
|
||||
@ -529,7 +526,7 @@ qemuMigrationDstStartNBDServer(virQEMUDriver *driver,
|
||||
return ret;
|
||||
|
||||
exit_monitor:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -550,7 +547,7 @@ qemuMigrationDstStopNBDServer(virQEMUDriver *driver,
|
||||
|
||||
if (qemuMonitorNBDServerStop(priv->mon) < 0)
|
||||
VIR_WARN("Unable to stop NBD server");
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
virPortAllocatorRelease(priv->nbdPort);
|
||||
priv->nbdPort = 0;
|
||||
@ -750,7 +747,7 @@ qemuMigrationSrcNBDCopyCancelOne(virQEMUDriver *driver,
|
||||
* consistency on the destination so that we can force cancel the mirror */
|
||||
rv = qemuMonitorBlockJobCancel(priv->mon, job->name, abortMigration);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rv < 0)
|
||||
return -1;
|
||||
|
||||
@ -871,7 +868,7 @@ qemuMigrationSrcCancelRemoveTempBitmaps(virDomainObj *vm,
|
||||
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
|
||||
return -1;
|
||||
qemuMonitorBitmapRemove(priv->mon, t->nodename, t->bitmapname);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -969,7 +966,7 @@ qemuMigrationSrcNBDStorageCopyBlockdev(virQEMUDriver *driver,
|
||||
if (mon_ret != 0)
|
||||
qemuBlockStorageSourceAttachRollback(qemuDomainGetMonitor(vm), data);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (mon_ret < 0)
|
||||
return -1;
|
||||
|
||||
@ -1011,7 +1008,7 @@ qemuMigrationSrcNBDStorageCopyDriveMirror(virQEMUDriver *driver,
|
||||
diskAlias, nbd_dest, "raw",
|
||||
mirror_speed, 0, 0, mirror_shallow, true);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (mon_ret < 0)
|
||||
return -1;
|
||||
|
||||
@ -1690,7 +1687,7 @@ qemuMigrationAnyFetchStats(virQEMUDriver *driver,
|
||||
|
||||
rv = qemuMonitorGetMigrationStats(priv->mon, &stats, error);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rv < 0)
|
||||
return -1;
|
||||
|
||||
@ -2055,7 +2052,7 @@ qemuMigrationSrcGraphicsRelocate(virQEMUDriver *driver,
|
||||
ret = qemuMonitorGraphicsRelocate(priv->mon, type, listenAddress,
|
||||
port, tlsPort, tlsSubject);
|
||||
jobPriv->spiceMigration = !ret;
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
@ -2159,7 +2156,7 @@ qemuMigrationDstRun(virQEMUDriver *driver,
|
||||
rv = qemuMonitorMigrateIncoming(priv->mon, uri);
|
||||
|
||||
exit_monitor:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rv < 0)
|
||||
return -1;
|
||||
|
||||
@ -2206,7 +2203,7 @@ qemuMigrationSrcCleanup(virDomainObj *vm,
|
||||
switch ((qemuMigrationJobPhase) priv->job.phase) {
|
||||
case QEMU_MIGRATION_PHASE_BEGIN3:
|
||||
/* just forget we were about to migrate */
|
||||
qemuMigrationJobFinish(driver, vm);
|
||||
qemuMigrationJobFinish(vm);
|
||||
break;
|
||||
|
||||
case QEMU_MIGRATION_PHASE_PERFORM3_DONE:
|
||||
@ -2216,7 +2213,7 @@ qemuMigrationSrcCleanup(virDomainObj *vm,
|
||||
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
|
||||
jobPriv->migParams, priv->job.apiFlags);
|
||||
/* clear the job and let higher levels decide what to do */
|
||||
qemuMigrationJobFinish(driver, vm);
|
||||
qemuMigrationJobFinish(vm);
|
||||
break;
|
||||
|
||||
case QEMU_MIGRATION_PHASE_PERFORM3:
|
||||
@ -2352,7 +2349,7 @@ qemuMigrationSrcBeginPhase(virQEMUDriver *driver,
|
||||
* change protection.
|
||||
*/
|
||||
if (priv->job.asyncJob == QEMU_ASYNC_JOB_MIGRATION_OUT)
|
||||
qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_BEGIN3);
|
||||
qemuMigrationJobSetPhase(vm, QEMU_MIGRATION_PHASE_BEGIN3);
|
||||
|
||||
if (!qemuMigrationSrcIsAllowed(driver, vm, true, flags))
|
||||
return NULL;
|
||||
@ -2567,9 +2564,9 @@ qemuMigrationSrcBegin(virConnectPtr conn,
|
||||
|
||||
endjob:
|
||||
if (flags & VIR_MIGRATE_CHANGE_PROTECTION)
|
||||
qemuMigrationJobFinish(driver, vm);
|
||||
qemuMigrationJobFinish(vm);
|
||||
else
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -2594,7 +2591,7 @@ qemuMigrationDstPrepareCleanup(virQEMUDriver *driver,
|
||||
|
||||
if (!qemuMigrationJobIsActive(vm, QEMU_ASYNC_JOB_MIGRATION_IN))
|
||||
return;
|
||||
qemuDomainObjDiscardAsyncJob(driver, vm);
|
||||
qemuDomainObjDiscardAsyncJob(vm);
|
||||
}
|
||||
|
||||
static qemuProcessIncomingDef *
|
||||
@ -2931,7 +2928,7 @@ qemuMigrationDstPrepareAny(virQEMUDriver *driver,
|
||||
if (qemuMigrationJobStart(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
|
||||
flags) < 0)
|
||||
goto cleanup;
|
||||
qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PREPARE);
|
||||
qemuMigrationJobSetPhase(vm, QEMU_MIGRATION_PHASE_PREPARE);
|
||||
|
||||
/* Domain starts inactive, even if the domain XML had an id field. */
|
||||
vm->def->id = -1;
|
||||
@ -3125,7 +3122,7 @@ qemuMigrationDstPrepareAny(virQEMUDriver *driver,
|
||||
QEMU_ASYNC_JOB_MIGRATION_IN, stopFlags);
|
||||
}
|
||||
|
||||
qemuMigrationJobFinish(driver, vm);
|
||||
qemuMigrationJobFinish(vm);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -3401,7 +3398,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriver *driver,
|
||||
|
||||
virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
|
||||
|
||||
qemuMigrationJobSetPhase(driver, vm,
|
||||
qemuMigrationJobSetPhase(vm,
|
||||
retcode == 0
|
||||
? QEMU_MIGRATION_PHASE_CONFIRM3
|
||||
: QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED);
|
||||
@ -3507,7 +3504,7 @@ qemuMigrationSrcConfirm(virQEMUDriver *driver,
|
||||
else
|
||||
phase = QEMU_MIGRATION_PHASE_CONFIRM3;
|
||||
|
||||
qemuMigrationJobStartPhase(driver, vm, phase);
|
||||
qemuMigrationJobStartPhase(vm, phase);
|
||||
virCloseCallbacksUnset(driver->closeCallbacks, vm,
|
||||
qemuMigrationSrcCleanup);
|
||||
|
||||
@ -3515,7 +3512,7 @@ qemuMigrationSrcConfirm(virQEMUDriver *driver,
|
||||
cookiein, cookieinlen,
|
||||
flags, cancelled);
|
||||
|
||||
qemuMigrationJobFinish(driver, vm);
|
||||
qemuMigrationJobFinish(vm);
|
||||
if (!virDomainObjIsActive(vm)) {
|
||||
if (!cancelled && ret == 0 && flags & VIR_MIGRATE_UNDEFINE_SOURCE) {
|
||||
virDomainDeleteConfig(cfg->configDir, cfg->autostartDir, vm);
|
||||
@ -3829,7 +3826,7 @@ qemuMigrationSrcContinue(virQEMUDriver *driver,
|
||||
|
||||
ret = qemuMonitorMigrateContinue(priv->mon, status);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -3852,7 +3849,7 @@ qemuMigrationSetDBusVMState(virQEMUDriver *driver,
|
||||
|
||||
rv = qemuMonitorSetDBusVMStateIdList(priv->mon, priv->dbusVMStateIds);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return rv;
|
||||
} else {
|
||||
@ -3952,7 +3949,7 @@ qemuMigrationSrcRunPrepareBlockDirtyBitmapsMerge(virDomainObj *vm,
|
||||
|
||||
rc = qemuMonitorTransaction(priv->mon, &actions);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -4261,7 +4258,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver,
|
||||
break;
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto error;
|
||||
|
||||
@ -4383,7 +4380,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver,
|
||||
qemuDomainObjEnterMonitorAsync(driver, vm,
|
||||
QEMU_ASYNC_JOB_MIGRATION_OUT) == 0) {
|
||||
qemuMonitorMigrateCancel(priv->mon);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
/* cancel any outstanding NBD jobs */
|
||||
@ -4404,7 +4401,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver,
|
||||
goto cleanup;
|
||||
|
||||
exit_monitor:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
goto error;
|
||||
}
|
||||
|
||||
@ -4657,7 +4654,7 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriver *driver,
|
||||
* until the migration is complete.
|
||||
*/
|
||||
VIR_DEBUG("Perform %p", sconn);
|
||||
qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM2);
|
||||
qemuMigrationJobSetPhase(vm, QEMU_MIGRATION_PHASE_PERFORM2);
|
||||
if (flags & VIR_MIGRATE_TUNNELLED)
|
||||
ret = qemuMigrationSrcPerformTunnel(driver, vm, st, NULL,
|
||||
NULL, 0, NULL, NULL,
|
||||
@ -4901,7 +4898,7 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriver *driver,
|
||||
* confirm migration completion.
|
||||
*/
|
||||
VIR_DEBUG("Perform3 %p uri=%s", sconn, NULLSTR(uri));
|
||||
qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM3);
|
||||
qemuMigrationJobSetPhase(vm, QEMU_MIGRATION_PHASE_PERFORM3);
|
||||
VIR_FREE(cookiein);
|
||||
cookiein = g_steal_pointer(&cookieout);
|
||||
cookieinlen = cookieoutlen;
|
||||
@ -4926,8 +4923,7 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriver *driver,
|
||||
if (ret < 0) {
|
||||
virErrorPreserveLast(&orig_err);
|
||||
} else {
|
||||
qemuMigrationJobSetPhase(driver, vm,
|
||||
QEMU_MIGRATION_PHASE_PERFORM3_DONE);
|
||||
qemuMigrationJobSetPhase(vm, QEMU_MIGRATION_PHASE_PERFORM3_DONE);
|
||||
}
|
||||
|
||||
/* If Perform returns < 0, then we need to cancel the VM
|
||||
@ -5303,7 +5299,7 @@ qemuMigrationSrcPerformJob(virQEMUDriver *driver,
|
||||
migParams, flags, dname, resource,
|
||||
&v3proto);
|
||||
} else {
|
||||
qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM2);
|
||||
qemuMigrationJobSetPhase(vm, QEMU_MIGRATION_PHASE_PERFORM2);
|
||||
ret = qemuMigrationSrcPerformNative(driver, vm, persist_xml, uri, cookiein, cookieinlen,
|
||||
cookieout, cookieoutlen,
|
||||
flags, resource, NULL, NULL, 0, NULL,
|
||||
@ -5339,7 +5335,7 @@ qemuMigrationSrcPerformJob(virQEMUDriver *driver,
|
||||
|
||||
qemuMigrationSrcRestoreDomainState(driver, vm);
|
||||
|
||||
qemuMigrationJobFinish(driver, vm);
|
||||
qemuMigrationJobFinish(vm);
|
||||
if (!virDomainObjIsActive(vm) && ret == 0) {
|
||||
if (flags & VIR_MIGRATE_UNDEFINE_SOURCE) {
|
||||
virDomainDeleteConfig(cfg->configDir, cfg->autostartDir, vm);
|
||||
@ -5389,7 +5385,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriver *driver,
|
||||
return ret;
|
||||
}
|
||||
|
||||
qemuMigrationJobStartPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM3);
|
||||
qemuMigrationJobStartPhase(vm, QEMU_MIGRATION_PHASE_PERFORM3);
|
||||
virCloseCallbacksUnset(driver->closeCallbacks, vm,
|
||||
qemuMigrationSrcCleanup);
|
||||
|
||||
@ -5403,7 +5399,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriver *driver,
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_PERFORM3_DONE);
|
||||
qemuMigrationJobSetPhase(vm, QEMU_MIGRATION_PHASE_PERFORM3_DONE);
|
||||
|
||||
if (virCloseCallbacksSet(driver->closeCallbacks, vm, conn,
|
||||
qemuMigrationSrcCleanup) < 0)
|
||||
@ -5413,7 +5409,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriver *driver,
|
||||
if (ret < 0) {
|
||||
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
|
||||
jobPriv->migParams, priv->job.apiFlags);
|
||||
qemuMigrationJobFinish(driver, vm);
|
||||
qemuMigrationJobFinish(vm);
|
||||
} else {
|
||||
qemuMigrationJobContinue(vm);
|
||||
}
|
||||
@ -5648,7 +5644,7 @@ qemuMigrationDstFinish(virQEMUDriver *driver,
|
||||
|
||||
ignore_value(virTimeMillisNow(&timeReceived));
|
||||
|
||||
qemuMigrationJobStartPhase(driver, vm,
|
||||
qemuMigrationJobStartPhase(vm,
|
||||
v3proto ? QEMU_MIGRATION_PHASE_FINISH3
|
||||
: QEMU_MIGRATION_PHASE_FINISH2);
|
||||
|
||||
@ -5878,7 +5874,7 @@ qemuMigrationDstFinish(virQEMUDriver *driver,
|
||||
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
|
||||
jobPriv->migParams, priv->job.apiFlags);
|
||||
|
||||
qemuMigrationJobFinish(driver, vm);
|
||||
qemuMigrationJobFinish(vm);
|
||||
if (!virDomainObjIsActive(vm))
|
||||
qemuDomainRemoveInactiveJob(driver, vm);
|
||||
|
||||
@ -5940,7 +5936,7 @@ qemuMigrationSrcToFile(virQEMUDriver *driver, virDomainObj *vm,
|
||||
qemuMonitorSetMigrationSpeed(priv->mon,
|
||||
QEMU_DOMAIN_MIG_BANDWIDTH_MAX);
|
||||
priv->migMaxBandwidth = QEMU_DOMAIN_MIG_BANDWIDTH_MAX;
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5977,11 +5973,11 @@ qemuMigrationSrcToFile(virQEMUDriver *driver, virDomainObj *vm,
|
||||
if (virSetCloseExec(pipeFD[1]) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("Unable to set cloexec flag"));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
goto cleanup;
|
||||
}
|
||||
if (virCommandRunAsync(compressor, NULL) < 0) {
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
goto cleanup;
|
||||
}
|
||||
rc = qemuMonitorMigrateToFd(priv->mon,
|
||||
@ -5991,7 +5987,7 @@ qemuMigrationSrcToFile(virQEMUDriver *driver, virDomainObj *vm,
|
||||
VIR_CLOSE(pipeFD[1]) < 0)
|
||||
VIR_WARN("failed to close intermediate pipe");
|
||||
}
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -6004,7 +6000,7 @@ qemuMigrationSrcToFile(virQEMUDriver *driver, virDomainObj *vm,
|
||||
if (virDomainObjIsActive(vm) &&
|
||||
qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
|
||||
qemuMonitorMigrateCancel(priv->mon);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
}
|
||||
goto cleanup;
|
||||
@ -6031,7 +6027,7 @@ qemuMigrationSrcToFile(virQEMUDriver *driver, virDomainObj *vm,
|
||||
} else {
|
||||
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
|
||||
qemuMonitorSetMigrationSpeed(priv->mon, saveMigBandwidth);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
}
|
||||
priv->migMaxBandwidth = saveMigBandwidth;
|
||||
@ -6063,7 +6059,7 @@ qemuMigrationSrcCancel(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
ignore_value(qemuMonitorMigrateCancel(priv->mon));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
for (i = 0; i < vm->def->ndisks; i++) {
|
||||
virDomainDiskDef *disk = vm->def->disks[i];
|
||||
@ -6125,8 +6121,7 @@ qemuMigrationJobStart(virQEMUDriver *driver,
|
||||
}
|
||||
|
||||
static void
|
||||
qemuMigrationJobSetPhase(virQEMUDriver *driver,
|
||||
virDomainObj *vm,
|
||||
qemuMigrationJobSetPhase(virDomainObj *vm,
|
||||
qemuMigrationJobPhase phase)
|
||||
{
|
||||
qemuDomainObjPrivate *priv = vm->privateData;
|
||||
@ -6138,15 +6133,14 @@ qemuMigrationJobSetPhase(virQEMUDriver *driver,
|
||||
return;
|
||||
}
|
||||
|
||||
qemuDomainObjSetJobPhase(driver, vm, phase);
|
||||
qemuDomainObjSetJobPhase(vm, phase);
|
||||
}
|
||||
|
||||
static void
|
||||
qemuMigrationJobStartPhase(virQEMUDriver *driver,
|
||||
virDomainObj *vm,
|
||||
qemuMigrationJobStartPhase(virDomainObj *vm,
|
||||
qemuMigrationJobPhase phase)
|
||||
{
|
||||
qemuMigrationJobSetPhase(driver, vm, phase);
|
||||
qemuMigrationJobSetPhase(vm, phase);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -6176,9 +6170,9 @@ qemuMigrationJobIsActive(virDomainObj *vm,
|
||||
}
|
||||
|
||||
static void
|
||||
qemuMigrationJobFinish(virQEMUDriver *driver, virDomainObj *vm)
|
||||
qemuMigrationJobFinish(virDomainObj *vm)
|
||||
{
|
||||
qemuDomainObjEndAsyncJob(driver, vm);
|
||||
qemuDomainObjEndAsyncJob(vm);
|
||||
}
|
||||
|
||||
|
||||
@ -6263,7 +6257,7 @@ qemuMigrationSrcFetchMirrorStats(virQEMUDriver *driver,
|
||||
|
||||
blockinfo = qemuMonitorGetAllBlockJobInfo(priv->mon, false);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (!blockinfo)
|
||||
return -1;
|
||||
|
||||
|
@ -504,7 +504,7 @@ qemuMigrationCookieAddNBD(qemuMigrationCookie *mig,
|
||||
rc = qemuMonitorBlockStatsUpdateCapacityBlockdev(priv->mon, stats);
|
||||
else
|
||||
rc = qemuMonitorBlockStatsUpdateCapacity(priv->mon, stats);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
|
@ -889,7 +889,7 @@ qemuMigrationParamsApply(virQEMUDriver *driver,
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (xbzrleCacheSize_old)
|
||||
migParams->params[xbzrle].set = true;
|
||||
@ -1098,7 +1098,7 @@ qemuMigrationParamsFetch(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorGetMigrationParams(priv->mon, &jsonParams);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -1399,7 +1399,7 @@ qemuMigrationCapsCheck(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorGetMigrationCapabilities(priv->mon, &caps);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -1432,7 +1432,7 @@ qemuMigrationCapsCheck(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorSetMigrationCapabilities(priv->mon, &json);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0) {
|
||||
virResetLastError();
|
||||
|
@ -474,7 +474,7 @@ qemuProcessFakeReboot(void *opaque)
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorSystemReset(priv->mon);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
goto endjob;
|
||||
@ -495,7 +495,7 @@ qemuProcessFakeReboot(void *opaque)
|
||||
ret = 0;
|
||||
|
||||
endjob:
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
|
||||
cleanup:
|
||||
priv->pausedShutdown = false;
|
||||
@ -1906,7 +1906,7 @@ qemuProcessInitMonitor(virQEMUDriver *driver,
|
||||
|
||||
ret = qemuMonitorSetCapabilities(QEMU_DOMAIN_PRIVATE(vm)->mon);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -2200,7 +2200,7 @@ qemuRefreshVirtioChannelState(virQEMUDriver *driver,
|
||||
return -1;
|
||||
|
||||
rc = qemuMonitorGetChardevInfo(priv->mon, &info);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
@ -2250,7 +2250,7 @@ qemuRefreshPRManagerState(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rc = qemuMonitorGetPRManagerInfo(priv->mon, &info);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
@ -2277,7 +2277,7 @@ qemuRefreshRTC(virQEMUDriver *driver,
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
now = time(NULL);
|
||||
rv = qemuMonitorGetRTCTime(priv->mon, &thenbits);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rv < 0)
|
||||
return;
|
||||
@ -2316,7 +2316,7 @@ qemuProcessRefreshBalloonState(virQEMUDriver *driver,
|
||||
return -1;
|
||||
|
||||
rc = qemuMonitorGetBalloonInfo(qemuDomainGetMonitor(vm), &balloon);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -2367,7 +2367,7 @@ qemuProcessWaitForMonitor(virQEMUDriver *driver,
|
||||
goto cleanup;
|
||||
ret = qemuMonitorGetChardevInfo(priv->mon, &info);
|
||||
VIR_DEBUG("qemuMonitorGetChardevInfo returned %i", ret);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (ret == 0) {
|
||||
if ((ret = qemuProcessFindCharDevicePTYsMonitor(vm, info)) < 0)
|
||||
@ -2407,7 +2407,7 @@ qemuProcessDetectIOThreadPIDs(virQEMUDriver *driver,
|
||||
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
|
||||
goto cleanup;
|
||||
ret = qemuMonitorGetIOThreads(priv->mon, &iothreads, &niothreads);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (ret < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -2582,7 +2582,7 @@ qemuProcessSetLinkStates(virQEMUDriver *driver,
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -3106,7 +3106,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriver *driver,
|
||||
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
cfg = virQEMUDriverGetConfig(driver);
|
||||
ret = virDomainObjSave(vm, driver->xmlopt, cfg->stateDir);
|
||||
@ -3114,7 +3114,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriver *driver,
|
||||
return ret;
|
||||
|
||||
error:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -3237,7 +3237,7 @@ qemuProcessStartCPUs(virQEMUDriver *driver, virDomainObj *vm,
|
||||
goto release;
|
||||
|
||||
ret = qemuMonitorStartCPUs(priv->mon);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (ret < 0)
|
||||
goto release;
|
||||
@ -3274,7 +3274,7 @@ int qemuProcessStopCPUs(virQEMUDriver *driver,
|
||||
goto cleanup;
|
||||
|
||||
ret = qemuMonitorStopCPUs(priv->mon);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (ret < 0)
|
||||
goto cleanup;
|
||||
@ -3385,7 +3385,7 @@ qemuProcessUpdateState(virQEMUDriver *driver, virDomainObj *vm)
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
ret = qemuMonitorGetStatus(priv->mon, &running, &reason);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
@ -3621,7 +3621,7 @@ qemuProcessRecoverJob(virQEMUDriver *driver,
|
||||
case QEMU_ASYNC_JOB_SNAPSHOT:
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
ignore_value(qemuMonitorMigrateCancel(priv->mon));
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
/* resume the domain but only if it was paused as a result of
|
||||
* running a migration-to-file operation. Although we are
|
||||
* recovering an async job, this function is run at startup
|
||||
@ -4282,7 +4282,7 @@ qemuProcessFetchGuestCPU(virQEMUDriver *driver,
|
||||
rc = qemuMonitorGetGuestCPUx86(priv->mon, cpuQOMPath, &dataEnabled, &dataDisabled);
|
||||
}
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc == -1)
|
||||
return -1;
|
||||
@ -4391,7 +4391,7 @@ qemuProcessFetchCPUDefinitions(virQEMUDriver *driver,
|
||||
|
||||
rc = virQEMUCapsFetchCPUModels(priv->mon, vm->def->os.arch, &models);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -4634,10 +4634,9 @@ qemuProcessBeginJob(virQEMUDriver *driver,
|
||||
|
||||
|
||||
void
|
||||
qemuProcessEndJob(virQEMUDriver *driver,
|
||||
virDomainObj *vm)
|
||||
qemuProcessEndJob(virDomainObj *vm)
|
||||
{
|
||||
qemuDomainObjEndAsyncJob(driver, vm);
|
||||
qemuDomainObjEndAsyncJob(vm);
|
||||
}
|
||||
|
||||
|
||||
@ -5105,7 +5104,7 @@ qemuProcessSetupBalloon(virQEMUDriver *driver,
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -6000,7 +5999,7 @@ qemuProcessSetupHotpluggableVcpus(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorAddDeviceProps(qemuDomainGetMonitor(vm), &vcpuprops);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (rc < 0)
|
||||
goto cleanup;
|
||||
@ -7162,7 +7161,7 @@ qemuProcessSetupDiskThrottlingBlockdev(virQEMUDriver *driver,
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -7282,7 +7281,7 @@ qemuProcessSetupDisksTransientHotplug(virDomainObj *vm,
|
||||
|
||||
rc = qemuMonitorSystemReset(priv->mon);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
}
|
||||
@ -7334,7 +7333,7 @@ qemuProcessSetupLifecycleActions(virDomainObj *vm,
|
||||
QEMU_MONITOR_ACTION_WATCHDOG_KEEP,
|
||||
QEMU_MONITOR_ACTION_PANIC_KEEP);
|
||||
|
||||
qemuDomainObjExitMonitor(priv->driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -8370,7 +8369,7 @@ void qemuProcessStop(virQEMUDriver *driver,
|
||||
|
||||
endjob:
|
||||
if (asyncJob != QEMU_ASYNC_JOB_NONE)
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
|
||||
cleanup:
|
||||
virErrorRestore(&orig_err);
|
||||
@ -8395,7 +8394,7 @@ qemuProcessAutoDestroy(virDomainObj *dom,
|
||||
if (priv->job.asyncJob) {
|
||||
VIR_DEBUG("vm=%s has long-term job active, cancelling",
|
||||
dom->def->name);
|
||||
qemuDomainObjDiscardAsyncJob(driver, dom);
|
||||
qemuDomainObjDiscardAsyncJob(dom);
|
||||
}
|
||||
|
||||
VIR_DEBUG("Killing domain");
|
||||
@ -8413,7 +8412,7 @@ qemuProcessAutoDestroy(virDomainObj *dom,
|
||||
|
||||
qemuDomainRemoveInactive(driver, dom);
|
||||
|
||||
qemuDomainObjEndJob(driver, dom);
|
||||
qemuDomainObjEndJob(dom);
|
||||
|
||||
virObjectEventStateQueue(driver->domainEventState, event);
|
||||
}
|
||||
@ -8457,7 +8456,7 @@ qemuProcessRefreshDisks(virQEMUDriver *driver,
|
||||
|
||||
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
|
||||
table = qemuMonitorGetBlockInfo(priv->mon);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
|
||||
if (!table)
|
||||
@ -8524,7 +8523,7 @@ qemuProcessRefreshCPUMigratability(virQEMUDriver *driver,
|
||||
|
||||
rc = qemuMonitorGetCPUMigratable(priv->mon, cpuQOMPath, &migratable);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
|
||||
@ -8681,7 +8680,7 @@ qemuProcessRefreshLegacyBlockjobs(virQEMUDriver *driver,
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
blockJobs = qemuMonitorGetAllBlockJobInfo(qemuDomainGetMonitor(vm), true);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
|
||||
if (!blockJobs)
|
||||
return -1;
|
||||
@ -8998,7 +8997,7 @@ qemuProcessReconnect(void *opaque)
|
||||
if (jobStarted) {
|
||||
if (!virDomainObjIsActive(obj))
|
||||
qemuDomainRemoveInactive(driver, obj);
|
||||
qemuDomainObjEndJob(driver, obj);
|
||||
qemuDomainObjEndJob(obj);
|
||||
} else {
|
||||
if (!virDomainObjIsActive(obj))
|
||||
qemuDomainRemoveInactiveJob(driver, obj);
|
||||
|
@ -69,8 +69,7 @@ int qemuProcessBeginJob(virQEMUDriver *driver,
|
||||
virDomainObj *vm,
|
||||
virDomainJobOperation operation,
|
||||
unsigned long apiFlags);
|
||||
void qemuProcessEndJob(virQEMUDriver *driver,
|
||||
virDomainObj *vm);
|
||||
void qemuProcessEndJob(virDomainObj *vm);
|
||||
|
||||
typedef enum {
|
||||
VIR_QEMU_PROCESS_START_COLD = 1 << 0,
|
||||
|
@ -322,7 +322,7 @@ qemuSnapshotCreateActiveInternal(virQEMUDriver *driver,
|
||||
}
|
||||
|
||||
ret = qemuMonitorCreateSnapshot(priv->mon, snap->def->name);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (ret < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -875,7 +875,7 @@ qemuSnapshotDiskCleanup(qemuSnapshotDiskData *data,
|
||||
|
||||
qemuBlockStorageSourceAttachRollback(qemuDomainGetMonitor(vm),
|
||||
data[i].crdata->srcdata[0]);
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1024,7 +1024,7 @@ qemuSnapshotDiskPrepareOneBlockdev(virQEMUDriver *driver,
|
||||
rc = qemuBlockStorageSourceAttachApply(qemuDomainGetMonitor(vm),
|
||||
dd->crdata->srcdata[0]);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, vm);
|
||||
qemuDomainObjExitMonitor(vm);
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
} else {
|
||||
@ -1281,7 +1281,7 @@ qemuSnapshotDiskCreate(qemuSnapshotDiskContext *snapctxt)
|
||||
|
||||
rc = qemuMonitorTransaction(priv->mon, &snapctxt->actions);
|
||||
|
||||
qemuDomainObjExitMonitor(driver, snapctxt->vm);
|
||||
qemuDomainObjExitMonitor(snapctxt->vm);
|
||||
|
||||
for (i = 0; i < snapctxt->ndd; i++) {
|
||||
qemuSnapshotDiskData *dd = snapctxt->dd + i;
|
||||
@ -1887,7 +1887,7 @@ qemuSnapshotCreateXML(virDomainPtr domain,
|
||||
snapshot = qemuSnapshotCreate(vm, domain, def, driver, cfg, flags);
|
||||
}
|
||||
|
||||
qemuDomainObjEndAsyncJob(driver, vm);
|
||||
qemuDomainObjEndAsyncJob(vm);
|
||||
|
||||
return snapshot;
|
||||
}
|
||||
@ -2322,7 +2322,7 @@ qemuSnapshotRevert(virDomainObj *vm,
|
||||
}
|
||||
|
||||
endjob:
|
||||
qemuProcessEndJob(driver, vm);
|
||||
qemuProcessEndJob(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -2454,7 +2454,7 @@ qemuSnapshotDelete(virDomainObj *vm,
|
||||
}
|
||||
|
||||
endjob:
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
qemuDomainObjEndJob(vm);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user