mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
qemu: block copy: Propagate 'detect_zeroes' properly into mirror definition
'qemuDomainPrepareDiskSourceData' propagates 'detect_zeroes' only for the disk source image, but the mirror destination has the ambition to replace the disk source when the job is finished, so we need to propagate the 'detect_zeroes' setting also in that case. Unfortunately it would become very hairy to either set 'disk->mirror' sooner or propagate that we want this done into 'qemuDomainPrepareDiskSourceData', so the most straightforward solution is to do the propagation inside 'qemuDomainBlockCopyCommon'. Closes: https://gitlab.com/libvirt/libvirt/-/issues/277 Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
8ce46ec2c3
commit
3c4b49e871
@ -14976,6 +14976,14 @@ qemuDomainBlockCopyCommon(virDomainObj *vm,
|
||||
if (qemuDomainPrepareStorageSourceBlockdev(disk, n, priv, cfg) < 0)
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
/* 'qemuDomainPrepareStorageSourceBlockdev' calls
|
||||
* 'qemuDomainPrepareDiskSourceData' which propagates 'detect_zeroes'
|
||||
* into the topmost virStorage source of the disk chain.
|
||||
* Since 'mirror' has the ambition to replace it we need to propagate
|
||||
* it into the mirror too. We do it directly as otherwise we'd need
|
||||
* to modify all callers of 'qemuDomainPrepareStorageSourceBlockdev' */
|
||||
mirror->detect_zeroes = disk->detect_zeroes;
|
||||
}
|
||||
|
||||
/* If reusing an external image that includes a backing file but the user
|
||||
|
Loading…
x
Reference in New Issue
Block a user