qemu: Fix value of 'device' argument for block-commit

When using blockdev configurations the 'device' argument of
'blockdev-commit' must correspond to the topmost node in the block node
graph. Libvirt didn't do this properly in case when 'copy_on_read'
option was enabled on the disk.

Use qemuDomainDiskGetTopNodename to fix it when calling block-commit.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Peter Krempa 2020-01-20 13:19:43 +01:00
parent e3137539a9
commit 69908db0f6

View File

@ -18813,7 +18813,7 @@ qemuDomainBlockCommit(virDomainPtr dom,
jobname = job->name;
nodetop = topSource->nodeformat;
nodebase = baseSource->nodeformat;
device = disk->src->nodeformat;
device = qemuDomainDiskGetTopNodename(disk);
if (!backingPath && top_parent &&
!(backingPath = qemuBlockGetBackingStoreString(baseSource)))
goto endjob;