]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Mark when modifying access to existing source in qemuDomainStorageSourceAccessM...
authorPeter Krempa <pkrempa@redhat.com>
Thu, 18 Apr 2019 14:16:57 +0000 (16:16 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 9 May 2019 13:55:36 +0000 (15:55 +0200)
Some operations e.g. namespace setup are not necessary when modifying
access to a file which the VM can already access. Add a flag which
allows to skip them.

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

index 4b036c7dc22b91b410fe3dba0350275c1c2df090..93a301973489e6691dc8cbb3e1f40ffca3c18cfe 100644 (file)
@@ -9220,6 +9220,8 @@ typedef enum {
     QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_READ_ONLY = 1 << 2,
     /* don't revoke permissions when modification has failed */
     QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_SKIP_REVOKE = 1 << 3,
+    /* VM already has access to the source and we are just modifying it */
+    QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_MODIFY_ACCESS = 1 << 4,
 } qemuDomainStorageSourceAccessFlags;
 
 
@@ -9272,10 +9274,13 @@ qemuDomainStorageSourceAccessModify(virQEMUDriverPtr driver,
 
     revoke_lockspace = true;
 
-    if (qemuDomainNamespaceSetupDisk(vm, src) < 0)
-        goto revoke;
+    /* When modifying access of existing @src namespace does not need update */
+    if (!(flags & QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_MODIFY_ACCESS)) {
+        if (qemuDomainNamespaceSetupDisk(vm, src) < 0)
+            goto revoke;
 
-    revoke_namespace = true;
+        revoke_namespace = true;
+    }
 
     if (qemuSecuritySetImageLabel(driver, vm, src, chain) < 0)
         goto revoke;