* @disk: domain disk
*
* Begin a new synchronous block job for @disk. The synchronous
- * block job is ended by a call to qemuBlockJobSyncEndDisk, or by
+ * block job is ended by a call to qemuBlockJobSyncEnd, or by
* the guest quitting.
*
* During a synchronous block job, a block job event for @disk
* will not be processed asynchronously. Instead, it will be
- * processed only when qemuBlockJobUpdate or qemuBlockJobSyncEndDisk
+ * processed only when qemuBlockJobUpdate or qemuBlockJobSyncEnd
* is called.
*/
void
/**
- * qemuBlockJobSyncEndDisk:
+ * qemuBlockJobSyncEnd:
* @vm: domain
* @disk: domain disk
*
* qemuBlockJobStartupFinalize will be called.
*/
void
-qemuBlockJobSyncEndDisk(virDomainObjPtr vm,
- int asyncJob,
- virDomainDiskDefPtr disk)
+qemuBlockJobSyncEnd(virDomainObjPtr vm,
+ qemuBlockJobDataPtr job,
+ int asyncJob)
{
- qemuBlockJobDataPtr job = QEMU_DOMAIN_DISK_PRIVATE(disk)->blockjob;
+ const char *diskdst = NULL;
- if (!job)
- return;
+ if (job->disk)
+ diskdst = job->disk->dst;
- VIR_DEBUG("disk=%s", disk->dst);
+ VIR_DEBUG("disk=%s", NULLSTR(diskdst));
qemuBlockJobUpdate(vm, job, asyncJob);
job->synchronous = false;
}
int asyncJob);
void qemuBlockJobSyncBegin(qemuBlockJobDataPtr job);
-void qemuBlockJobSyncEndDisk(virDomainObjPtr vm,
- int asyncJob,
- virDomainDiskDefPtr disk);
+void qemuBlockJobSyncEnd(virDomainObjPtr vm,
+ qemuBlockJobDataPtr job,
+ int asyncJob);
qemuBlockJobDataPtr
qemuBlockJobGetByDisk(virDomainDiskDefPtr disk)
}
endjob:
- if (disk)
- qemuBlockJobSyncEndDisk(vm, QEMU_ASYNC_JOB_NONE, disk);
+ if (job && !async)
+ qemuBlockJobSyncEnd(vm, job, QEMU_ASYNC_JOB_NONE);
qemuDomainObjEndJob(driver, vm);
cleanup:
err = virSaveLastError();
failed = true;
}
- qemuBlockJobSyncEndDisk(vm, asyncJob, disk);
+ qemuBlockJobSyncEnd(vm, job, asyncJob);
diskPriv->migrating = false;
}