From: Peter Krempa Date: Tue, 16 Feb 2016 15:26:01 +0000 (+0100) Subject: qemu: cgroup: Setup cgroups for bios/firmware images X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=d1242ba24a5ceb74c7ba21c6b2a44aaa1745fe79;p=libvirt.git qemu: cgroup: Setup cgroups for bios/firmware images 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 --- diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index 9f2454557d..53642a1c4b 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -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;