]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBlockStorageSourceGetBlockdevStorageSliceProps: Allow turning the slice layer...
authorPeter Krempa <pkrempa@redhat.com>
Fri, 3 Nov 2023 13:21:11 +0000 (14:21 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 27 Nov 2023 09:14:20 +0000 (10:14 +0100)
Allow using the slice layer as effective layer once we stop formatting
the unnecessary 'raw' driver.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_block.c

index 2a432c8d1d6e7af1492ebc6599ef5efc4c34f664..7ee565c15f43e0282a16deedd907bb847717ea18 100644 (file)
@@ -1448,8 +1448,18 @@ qemuBlockStorageSourceGetFormatProps(virStorageSource *src,
 }
 
 
+/**
+ * qemuBlockStorageSourceGetBlockdevStorageSliceProps:
+ * @src: storage source object
+ * @effective: Whether this blockdev will be the 'effective' layer of @src
+ *
+ * Formats the JSON object representing -blockdev configuration required to
+ * configure a 'slice' of @src. If @effective is true, the slice layer is the
+ * topmost/effective blockdev layer of @src.
+ */
 static virJSONValue *
-qemuBlockStorageSourceGetBlockdevStorageSliceProps(virStorageSource *src)
+qemuBlockStorageSourceGetBlockdevStorageSliceProps(virStorageSource *src,
+                                                   bool effective)
 {
     g_autoptr(virJSONValue) props = NULL;
 
@@ -1464,7 +1474,7 @@ qemuBlockStorageSourceGetBlockdevStorageSliceProps(virStorageSource *src)
     if (qemuBlockStorageSourceAddBlockdevCommonProps(&props,
                                                      src,
                                                      src->sliceStorage->nodename,
-                                                     false) < 0)
+                                                     effective) < 0)
         return NULL;
 
     return g_steal_pointer(&props);
@@ -1536,7 +1546,7 @@ qemuBlockStorageSourceAttachPrepareBlockdev(virStorageSource *src,
     data->formatNodeName = qemuBlockStorageSourceGetFormatNodename(src);
 
     if ((data->storageSliceNodeName = qemuBlockStorageSourceGetSliceNodename(src))) {
-        if (!(data->storageSliceProps = qemuBlockStorageSourceGetBlockdevStorageSliceProps(src)))
+        if (!(data->storageSliceProps = qemuBlockStorageSourceGetBlockdevStorageSliceProps(src, false)))
             return NULL;
     }