if (qemuBackupBeginPrepareTLS(vm, cfg, def, &tlsProps, &tlsSecretProps) < 0)
goto endjob;
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_BACKUP) < 0)
+ goto endjob;
+
actions = virJSONValueNewArray();
/* The 'chk' checkpoint must be rolled back if the transaction command
actions = virJSONValueNewArray();
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_NONE) < 0)
+ return -1;
+
if (!(blockNamedNodeData = qemuBlockGetNamedNodeData(vm, VIR_ASYNC_JOB_NONE)))
return -1;
if (virDomainObjCheckActive(vm) < 0)
return -1;
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_NONE) < 0)
+ return -1;
+
if (!(blockNamedNodeData = qemuBlockGetNamedNodeData(vm, VIR_ASYNC_JOB_NONE)))
return -1;
if (qemuCheckpointCreateCommon(driver, vm, def, &actions, &chk) < 0)
return NULL;
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_NONE) < 0)
+ return NULL;
+
qemuDomainObjEnterMonitor(vm);
rc = qemuMonitorTransaction(qemuDomainGetMonitor(vm), &actions);
qemuDomainObjExitMonitor(vm);
if (virDomainObjCheckActive(vm) < 0)
goto endjob;
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_NONE) < 0)
+ goto endjob;
+
if (!(nodedataMerge = qemuBlockGetNamedNodeData(vm, VIR_ASYNC_JOB_NONE)))
goto endjob;
speed <<= 20;
}
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_NONE) < 0)
+ goto endjob;
+
if (!(job = qemuBlockJobDiskNewPull(vm, disk, baseSource, flags)))
goto endjob;
goto endjob;
}
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_NONE) < 0)
+ goto endjob;
+
/* pre-create the image file. This is required so that libvirt can properly
* label the image for access by qemu */
if (!existing) {
base, disk->dst, NULL)))
goto endjob;
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_NONE) < 0)
+ goto endjob;
+
job = qemuBlockCommit(vm, disk, baseSource, topSource, top_parent,
speed, VIR_ASYNC_JOB_NONE, VIR_TRISTATE_BOOL_YES,
flags);
vm->newDef && !qemuDomainVcpuHotplugIsInOrder(vm->newDef)))
cookieFlags |= QEMU_MIGRATION_COOKIE_CPU_HOTPLUG;
+ if (qemuBlockNodesEnsureActive(vm, vm->job->asyncJob) < 0)
+ return NULL;
+
return qemuMigrationSrcBeginXML(vm, xmlin,
cookieout, cookieoutlen, cookieFlags,
migrate_disks, flags);
/* actually do the snapshot */
if (virDomainObjIsActive(vm)) {
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_SNAPSHOT) < 0)
+ goto error;
+
if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY ||
virDomainSnapshotObjGetDef(snap)->memory == VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL) {
/* external full system or disk snapshot */
return -1;
}
} else {
+ if (qemuBlockNodesEnsureActive(vm, VIR_ASYNC_JOB_SNAPSHOT) < 0)
+ return -1;
+
if (virDomainSnapshotIsExternal(snap)) {
if (qemuSnapshotDiscardExternal(vm, snap, externalData) < 0)
return -1;