This function was added prior 'blockdev-reopen' being stable and qemu
changed the arguments to actually contain an array of block node
definitions to reopen.
In our case we are just changing between read-only and read-write modes
and thus we can keep operating on the nodes one-by-one.
Modify the code to add the wrapper array.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_block.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index c96be8b52d..d9b876e5c1 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -3304,8 +3304,18 @@ qemuBlockReopenFormatMon(qemuMonitor *mon,
virStorageSource *src)
{
g_autoptr(virJSONValue) reopenprops = NULL;
+ g_autoptr(virJSONValue) srcprops = NULL;
+ g_autoptr(virJSONValue) reopenoptions = virJSONValueNewArray();
- if (!(reopenprops = qemuBlockStorageSourceGetBlockdevProps(src,
src->backingStore)))
+ if (!(srcprops = qemuBlockStorageSourceGetBlockdevProps(src, src->backingStore)))
+ return -1;
+
+ if (virJSONValueArrayAppend(reopenoptions, &srcprops) < 0)
+ return -1;
+
+ if (virJSONValueObjectCreate(&reopenprops,
+ "a:options", &reopenoptions,
+ NULL) < 0)
return -1;
if (qemuMonitorBlockdevReopen(mon, &reopenprops) < 0)
--
2.31.1