]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: block: Introduce qemuBlockNamedNodeDataGetBitmapByName
authorPeter Krempa <pkrempa@redhat.com>
Thu, 5 Dec 2019 14:57:30 +0000 (15:57 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 13 Dec 2019 12:22:55 +0000 (13:22 +0100)
This function looks up a named bitmap for a virStorageSource in the data
returned from query-named-block-nodes.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
src/qemu/qemu_block.c
src/qemu/qemu_block.h

index ada2c5294776632ad880c0c4637c67afc1207aaa..629a09b8972ebadab943dab01c71f9685e1474ca 100644 (file)
@@ -2612,3 +2612,35 @@ qemuBlockRemoveImageMetadata(virQEMUDriverPtr driver,
 
     return ret;
 }
+
+
+/**
+ * qemuBlockNamedNodeDataGetBitmapByName:
+ * @blockNamedNodeData: hash table returned by qemuMonitorBlockGetNamedNodeData
+ * @src: disk source to find the bitmap for
+ * @bitmap: name of the bitmap to find
+ *
+ * Looks up a bitmap named @bitmap of the @src image.
+ */
+qemuBlockNamedNodeDataBitmapPtr
+qemuBlockNamedNodeDataGetBitmapByName(virHashTablePtr blockNamedNodeData,
+                                      virStorageSourcePtr src,
+                                      const char *bitmap)
+{
+    qemuBlockNamedNodeDataPtr nodedata;
+    size_t i;
+
+    if (!(nodedata = virHashLookup(blockNamedNodeData, src->nodeformat)))
+        return NULL;
+
+    for (i = 0; i < nodedata->nbitmaps; i++) {
+        qemuBlockNamedNodeDataBitmapPtr bitmapdata = nodedata->bitmaps[i];
+
+        if (STRNEQ(bitmapdata->name, bitmap))
+            continue;
+
+        return bitmapdata;
+    }
+
+    return NULL;
+}
index 5854641027fbe2635f912645f7af9c04eb2abc86..1a38e0eccf0894e3dec4423475c5b4bea98022fc 100644 (file)
@@ -203,3 +203,8 @@ qemuBlockRemoveImageMetadata(virQEMUDriverPtr driver,
                              virDomainObjPtr vm,
                              const char *diskTarget,
                              virStorageSourcePtr src);
+
+qemuBlockNamedNodeDataBitmapPtr
+qemuBlockNamedNodeDataGetBitmapByName(virHashTablePtr blockNamedNodeData,
+                                      virStorageSourcePtr src,
+                                      const char *bitmap);