From: Peter Krempa Date: Mon, 11 Jun 2018 11:25:20 +0000 (+0200) Subject: qemu: block: Add generator for the 'copy-on-read' blockdev driver X-Git-Tag: v4.7.0-rc1~84 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9843f22c2ac8486f31fb853c4a6092a25f29dcfb;p=thirdparty%2Flibvirt.git qemu: block: Add generator for the 'copy-on-read' blockdev driver The copy on read functionality is done using a separate layer in the backing chain. Add function to generate properties for it. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index ccdd334367..5321dda316 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1745,3 +1745,25 @@ qemuBlockSnapshotAddLegacy(virJSONValuePtr actions, VIR_FREE(source); return ret; } + + +/** + * qemuBlockStorageGetCopyOnReadProps: + * @disk: disk with copy-on-read enabled + * + * Creates blockdev properties for a disk copy-on-read layer. + */ +virJSONValuePtr +qemuBlockStorageGetCopyOnReadProps(virDomainDiskDefPtr disk) +{ + qemuDomainDiskPrivatePtr priv = QEMU_DOMAIN_DISK_PRIVATE(disk); + virJSONValuePtr ret = NULL; + + ignore_value(virJSONValueObjectCreate(&ret, + "s:driver", "copy-on-read", + "s:node-name", priv->nodeCopyOnRead, + "s:file", disk->src->nodeformat, + NULL)); + + return ret; +} diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h index fd8984e60b..62ed5027cb 100644 --- a/src/qemu/qemu_block.h +++ b/src/qemu/qemu_block.h @@ -67,6 +67,8 @@ qemuBlockStorageSourceGetURI(virStorageSourcePtr src); virJSONValuePtr qemuBlockStorageSourceGetBlockdevProps(virStorageSourcePtr src); +virJSONValuePtr +qemuBlockStorageGetCopyOnReadProps(virDomainDiskDefPtr disk); typedef struct qemuBlockStorageSourceAttachData qemuBlockStorageSourceAttachData; typedef qemuBlockStorageSourceAttachData *qemuBlockStorageSourceAttachDataPtr;