mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
qemu: blockjob: Emit VIR_DOMAIN_EVENT_ID_BLOCK_JOB only for local disks
The event reports the disk path to identify the disk which makes sense only for local disks. Additionally network backed disks like NBD don't need to have a path so the callback would return NULL. Report VIR_DOMAIN_EVENT_ID_BLOCK_JOB only for non-empty local disks. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
56557b4898
commit
b618a45b0f
@ -46,7 +46,7 @@ VIR_LOG_INIT("qemu.qemu_blockjob");
|
||||
* qemuBlockJobEmitEvents:
|
||||
*
|
||||
* Emits the VIR_DOMAIN_EVENT_ID_BLOCK_JOB and VIR_DOMAIN_EVENT_ID_BLOCK_JOB_2
|
||||
* for a block job.
|
||||
* for a block job. The former event is emitted only for local disks.
|
||||
*/
|
||||
static void
|
||||
qemuBlockJobEmitEvents(virQEMUDriverPtr driver,
|
||||
@ -58,9 +58,12 @@ qemuBlockJobEmitEvents(virQEMUDriverPtr driver,
|
||||
virObjectEventPtr event = NULL;
|
||||
virObjectEventPtr event2 = NULL;
|
||||
|
||||
event = virDomainEventBlockJobNewFromObj(vm, virDomainDiskGetSource(disk),
|
||||
type, status);
|
||||
virObjectEventStateQueue(driver->domainEventState, event);
|
||||
if (virStorageSourceIsLocalStorage(disk->src) &&
|
||||
!virStorageSourceIsEmpty(disk->src)) {
|
||||
event = virDomainEventBlockJobNewFromObj(vm, virDomainDiskGetSource(disk),
|
||||
type, status);
|
||||
virObjectEventStateQueue(driver->domainEventState, event);
|
||||
}
|
||||
|
||||
event2 = virDomainEventBlockJob2NewFromObj(vm, disk->dst, type, status);
|
||||
virObjectEventStateQueue(driver->domainEventState, event2);
|
||||
|
Loading…
x
Reference in New Issue
Block a user