mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 22:55:23 +00:00
Don't return an error on failure to create blkio controller
This patch enables cgroup controllers as much as possible by skipping the creation of blkio controller when running with old kernels that doesn't support multi-level directory for blkio controller. Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
e36804ce86
commit
ae5155768f
@ -527,10 +527,21 @@ static int virCgroupMakeGroup(virCgroupPtr parent, virCgroupPtr group,
|
|||||||
if (access(path, F_OK) != 0) {
|
if (access(path, F_OK) != 0) {
|
||||||
if (!create ||
|
if (!create ||
|
||||||
mkdir(path, 0755) < 0) {
|
mkdir(path, 0755) < 0) {
|
||||||
|
/* With a kernel that doesn't support multi-level directory
|
||||||
|
* for blkio controller, libvirt will fail and disable all
|
||||||
|
* other controllers even though they are available. So
|
||||||
|
* treat blkio as unmounted if mkdir fails. */
|
||||||
|
if (i == VIR_CGROUP_CONTROLLER_BLKIO) {
|
||||||
|
rc = 0;
|
||||||
|
VIR_FREE(group->controllers[i].mountPoint);
|
||||||
|
VIR_FREE(path);
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
rc = -errno;
|
rc = -errno;
|
||||||
VIR_FREE(path);
|
VIR_FREE(path);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (group->controllers[VIR_CGROUP_CONTROLLER_CPUSET].mountPoint != NULL &&
|
if (group->controllers[VIR_CGROUP_CONTROLLER_CPUSET].mountPoint != NULL &&
|
||||||
(i == VIR_CGROUP_CONTROLLER_CPUSET ||
|
(i == VIR_CGROUP_CONTROLLER_CPUSET ||
|
||||||
STREQ(group->controllers[i].mountPoint, group->controllers[VIR_CGROUP_CONTROLLER_CPUSET].mountPoint))) {
|
STREQ(group->controllers[i].mountPoint, group->controllers[VIR_CGROUP_CONTROLLER_CPUSET].mountPoint))) {
|
||||||
|
Loading…
Reference in New Issue
Block a user