diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c index d72e51b73c..c75396bec7 100644 --- a/src/qemu/qemu_blockjob.c +++ b/src/qemu/qemu_blockjob.c @@ -388,12 +388,12 @@ qemuBlockJobUpdate(virDomainObjPtr vm, * @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 @@ -411,7 +411,7 @@ qemuBlockJobSyncBegin(qemuBlockJobDataPtr job) /** - * qemuBlockJobSyncEndDisk: + * qemuBlockJobSyncEnd: * @vm: domain * @disk: domain disk * @@ -421,16 +421,16 @@ qemuBlockJobSyncBegin(qemuBlockJobDataPtr job) * 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; } diff --git a/src/qemu/qemu_blockjob.h b/src/qemu/qemu_blockjob.h index 2f6d1afcf3..f20346ebff 100644 --- a/src/qemu/qemu_blockjob.h +++ b/src/qemu/qemu_blockjob.h @@ -100,9 +100,9 @@ int qemuBlockJobUpdate(virDomainObjPtr vm, 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) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3d3ab6256f..ee64f0ce0a 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -17456,8 +17456,8 @@ qemuDomainBlockJobAbort(virDomainPtr dom, } endjob: - if (disk) - qemuBlockJobSyncEndDisk(vm, QEMU_ASYNC_JOB_NONE, disk); + if (job && !async) + qemuBlockJobSyncEnd(vm, job, QEMU_ASYNC_JOB_NONE); qemuDomainObjEndJob(driver, vm); cleanup: diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 066d9490e9..ac4e6ca510 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -723,7 +723,7 @@ qemuMigrationSrcNBDCopyCancel(virQEMUDriverPtr driver, err = virSaveLastError(); failed = true; } - qemuBlockJobSyncEndDisk(vm, asyncJob, disk); + qemuBlockJobSyncEnd(vm, job, asyncJob); diskPriv->migrating = false; }