]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: change the return value of virCgroupRemove if failed
authorWang Yechao <wang.yechao255@zte.com.cn>
Fri, 19 Jul 2019 03:19:38 +0000 (11:19 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 19 Jul 2019 13:41:29 +0000 (15:41 +0200)
virCgroupRemove return -1 when removing cgroup failed.
But there are retry code to remove cgroup in QemuProcessStop:

 retry:
    if ((ret = qemuRemoveCgroup(vm)) < 0) {
        if (ret == -EBUSY && (retries++ < 5)) {
            usleep(200*1000);
            goto retry;
        }
        VIR_WARN("Failed to remove cgroup for %s",
                 vm->def->name);
    }

The return value of qemuRemoveCgroup will never be equal to "-EBUSY",
so change the return value of virCgroupRemove if failed.

Signed-off-by: Wang Yechao <wang.yechao255@zte.com.cn>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/util/vircgroup.c

index 268e4013e390c3878586bc98c6c6dd982944b189..f7afc2964d63c5ecf564399acabf9a195f73d830 100644 (file)
@@ -2401,9 +2401,10 @@ virCgroupRemove(virCgroupPtr group)
     size_t i;
 
     for (i = 0; i < VIR_CGROUP_BACKEND_TYPE_LAST; i++) {
-        if (group->backends[i] &&
-            group->backends[i]->remove(group) < 0) {
-            return -1;
+        if (group->backends[i]) {
+            int rc = group->backends[i]->remove(group);
+            if (rc < 0)
+                return rc;
         }
     }