]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: cgroup: Setup cgroups for bios/firmware images
authorPeter Krempa <pkrempa@redhat.com>
Tue, 16 Feb 2016 15:26:01 +0000 (16:26 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 17 Feb 2016 11:29:00 +0000 (12:29 +0100)
oVirt wants to use OVMF images on top of lvm for their 'logical'
storage thus we should set up device ACLs for them so it will actually
work.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1305922

src/qemu/qemu_cgroup.c

index 9f2454557d1ae3c4aebe461de39e0df75abee746..53642a1c4bad294a478331fc5a30fc7c2541fb7a 100644 (file)
@@ -547,6 +547,25 @@ qemuSetupMemoryCgroup(virDomainObjPtr vm)
 }
 
 
+static int
+qemuSetupFirmwareCgroup(virDomainObjPtr vm)
+{
+    if (!vm->def->os.loader)
+        return 0;
+
+    if (vm->def->os.loader->path &&
+        qemuSetupImagePathCgroup(vm, vm->def->os.loader->path,
+                                 vm->def->os.loader->readonly == VIR_TRISTATE_BOOL_YES) < 0)
+        return -1;
+
+    if (vm->def->os.loader->nvram &&
+        qemuSetupImagePathCgroup(vm, vm->def->os.loader->nvram, false) < 0)
+        return -1;
+
+    return 0;
+}
+
+
 static int
 qemuSetupDevicesCgroup(virQEMUDriverPtr driver,
                        virDomainObjPtr vm)
@@ -573,6 +592,9 @@ qemuSetupDevicesCgroup(virQEMUDriverPtr driver,
         goto cleanup;
     }
 
+    if (qemuSetupFirmwareCgroup(vm) < 0)
+        goto cleanup;
+
     for (i = 0; i < vm->def->ndisks; i++) {
         if (qemuSetupDiskCgroup(vm, vm->def->disks[i]) < 0)
             goto cleanup;