]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: block: Add accessors for format layer node names
authorPeter Krempa <pkrempa@redhat.com>
Wed, 20 Sep 2023 13:24:14 +0000 (15:24 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 17 Oct 2023 12:16:16 +0000 (14:16 +0200)
Introduce a set of accessors, which return node names based on
semantics. This will allow to us to modify how we setup the backing
chain in cases when e.g. the format driver can be omitted, without
breaking all the code.

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

index a2414dc2e376070b0b0138555f6c2ae451770fdb..cba1fb1c1e1bab518189c46b9cc8c7f5d1c539ad 100644 (file)
@@ -69,6 +69,23 @@ qemuBlockStorageSourceSetStorageNodename(virStorageSource *src,
 }
 
 
+/**
+ * qemuBlockStorageSourceSetFormatNodename:
+ * @src: virStorageSource to set the format nodename
+ * @nodename: The node name to set (stolen)
+ *
+ * Sets @nodename as the format node name of @src. Using NULL @nodename clears
+ * the nodename. @src takes ownership of @nodename.
+ */
+void
+qemuBlockStorageSourceSetFormatNodename(virStorageSource *src,
+                                        char *nodename)
+{
+    g_free(src->nodeformat);
+    src->nodeformat = nodename;
+}
+
+
 /**
  * qemuBlockStorageSourceGetEffectiveStorageNodename:
  * @src: virStorageSource to get the effective nodename of
@@ -100,6 +117,20 @@ qemuBlockStorageSourceGetStorageNodename(virStorageSource *src)
 }
 
 
+/**
+ * qemuBlockStorageSourceGetFormatNodename:
+ * @src: virStorageSource to get the effective nodename of
+ *
+ * Gets the nodename corresponding to the format layer. Useful when accessing
+ * format specific features. Returns NULL if there is no format layer.
+ */
+const char *
+qemuBlockStorageSourceGetFormatNodename(virStorageSource *src)
+{
+    return src->nodeformat;
+}
+
+
 /**
  * qemuBlockStorageSourceSupportsConcurrentAccess:
  * @src: disk storage source
index ecc5711dcdb7966d1ba4e25084bdbbeb1afedfee..6ed0aa85b2def12572320f54624774564a3cfd92 100644 (file)
@@ -30,12 +30,19 @@ void
 qemuBlockStorageSourceSetStorageNodename(virStorageSource *src,
                                          char *nodename);
 
+void
+qemuBlockStorageSourceSetFormatNodename(virStorageSource *src,
+                                        char *nodename);
+
 const char *
 qemuBlockStorageSourceGetEffectiveStorageNodename(virStorageSource *src);
 
 const char *
 qemuBlockStorageSourceGetStorageNodename(virStorageSource *src);
 
+const char *
+qemuBlockStorageSourceGetFormatNodename(virStorageSource *src);
+
 
 typedef struct qemuBlockNodeNameBackingChainData qemuBlockNodeNameBackingChainData;
 struct qemuBlockNodeNameBackingChainData {