]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBlockStorageSourceCreateFormat: Force write access when formatting images
authorPeter Krempa <pkrempa@redhat.com>
Mon, 11 May 2020 12:23:13 +0000 (14:23 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 12 May 2020 04:56:09 +0000 (06:56 +0200)
We need qemu to be able to write the newly created images so that it can
format them to the specified storage format.

Force write access by relabelling the images when formatting.

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

index d32277d7fd57dc975fe0c8cdb12e26b33f30116c..6f9c7071c926799812829f44d3fd71f86e8bc63c 100644 (file)
@@ -2671,6 +2671,12 @@ qemuBlockStorageSourceCreate(virDomainObjPtr vm,
         return -1;
     }
 
+    /* grant write access to read-only images during formatting */
+    if (src->readonly &&
+        qemuDomainStorageSourceAccessAllow(priv->driver, vm, src, false,
+                                           false, true) < 0)
+        return -1;
+
     if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0)
         goto cleanup;
 
@@ -2697,6 +2703,12 @@ qemuBlockStorageSourceCreate(virDomainObjPtr vm,
                                            asyncJob) < 0)
         goto cleanup;
 
+    /* revoke write access to read-only images during formatting */
+    if (src->readonly &&
+        qemuDomainStorageSourceAccessAllow(priv->driver, vm, src, true,
+                                           false, true) < 0)
+        goto cleanup;
+
     if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, asyncJob) < 0)
         goto cleanup;