]> xenbits.xensource.com Git - libvirt.git/commitdiff
cgroup: preserve correct errno on failure
authorEric Blake <eblake@redhat.com>
Tue, 15 Feb 2011 23:50:34 +0000 (16:50 -0700)
committerEric Blake <eblake@redhat.com>
Wed, 16 Feb 2011 15:10:30 +0000 (08:10 -0700)
* src/util/cgroup.c (virCgroupSetValueStr, virCgroupGetValueStr)
(virCgroupRemoveRecursively): VIR_DEBUG can clobber errno.
(virCgroupRemove): Use VIR_DEBUG rather than DEBUG.

src/util/cgroup.c

index 47c46330674586600e0106d2ff5c6d5efc49fa49..b71eef94edea76c989c52d07d6d84f3c51026bad 100644 (file)
@@ -290,8 +290,8 @@ static int virCgroupSetValueStr(virCgroupPtr group,
     VIR_DEBUG("Set value '%s' to '%s'", keypath, value);
     rc = virFileWriteStr(keypath, value, 0);
     if (rc < 0) {
-        DEBUG("Failed to write value '%s': %m", value);
         rc = -errno;
+        VIR_DEBUG("Failed to write value '%s': %m", value);
     } else {
         rc = 0;
     }
@@ -313,7 +313,7 @@ static int virCgroupGetValueStr(virCgroupPtr group,
 
     rc = virCgroupPathOfController(group, controller, key, &keypath);
     if (rc != 0) {
-        DEBUG("No path of %s, %s", group->path, key);
+        VIR_DEBUG("No path of %s, %s", group->path, key);
         return rc;
     }
 
@@ -321,8 +321,8 @@ static int virCgroupGetValueStr(virCgroupPtr group,
 
     rc = virFileReadAll(keypath, 1024, value);
     if (rc < 0) {
-        DEBUG("Failed to read %s: %m\n", keypath);
         rc = -errno;
+        VIR_DEBUG("Failed to read %s: %m\n", keypath);
     } else {
         /* Terminated with '\n' has sometimes harmful effects to the caller */
         char *p = strchr(*value, '\n');
@@ -635,8 +635,8 @@ static int virCgroupRemoveRecursively(char *grppath)
     if (grpdir == NULL) {
         if (errno == ENOENT)
             return 0;
-        VIR_ERROR(_("Unable to open %s (%d)"), grppath, errno);
         rc = -errno;
+        VIR_ERROR(_("Unable to open %s (%d)"), grppath, errno);
         return rc;
     }
 
@@ -665,7 +665,7 @@ static int virCgroupRemoveRecursively(char *grppath)
     }
     closedir(grpdir);
 
-    DEBUG("Removing cgroup %s", grppath);
+    VIR_DEBUG("Removing cgroup %s", grppath);
     if (rmdir(grppath) != 0 && errno != ENOENT) {
         rc = -errno;
         VIR_ERROR(_("Unable to remove %s (%d)"), grppath, errno);
@@ -710,7 +710,7 @@ int virCgroupRemove(virCgroupPtr group)
                                       &grppath) != 0)
             continue;
 
-        DEBUG("Removing cgroup %s and all child cgroups", grppath);
+        VIR_DEBUG("Removing cgroup %s and all child cgroups", grppath);
         rc = virCgroupRemoveRecursively(grppath);
         VIR_FREE(grppath);
     }