From bfb29654c802843f000b318c37bec9b114ac5b7b Mon Sep 17 00:00:00 2001 From: Wang Yufei Date: Thu, 20 Mar 2014 07:14:01 +0000 Subject: [PATCH] cgroup: Fix start VMs coincidently failed When I start multi VMs coincidently and any of the cgroup directories named machine doesn't exist. There's a chance that VM start failed because of creating directory failed: Unable to initialize /machine cgroup: File exists When the errno returned by mkdir in virCgroupMakeGroup is EEXIST, we should pass it through and continue to start the VM. Signed-off-by: Wang Yufei --- src/util/vircgroup.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index c5925b1df..a10d6f6f8 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -924,6 +924,10 @@ virCgroupMakeGroup(virCgroupPtr parent, if (!virFileExists(path)) { if (!create || mkdir(path, 0755) < 0) { + if (errno == EEXIST) { + VIR_FREE(path); + continue; + } /* 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 -- 2.39.5