[libvirt] [PATCH] cgroup: preserve correct errno on failure

Daniel Veillard veillard at redhat.com
Wed Feb 16 03:34:38 UTC 2011


On Tue, Feb 15, 2011 at 05:01:18PM -0700, Eric Blake wrote:
> * src/util/cgroup.c (virCgroupSetValueStr, virCgroupGetValueStr)
> (virCgroupRemoveRecursively): VIR_DEBUG can clobber errno.
> (virCgroupRemove): Use VIR_DEBUG rather than DEBUG.
> ---
>  src/util/cgroup.c |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/src/util/cgroup.c b/src/util/cgroup.c
> index 47c4633..b71eef9 100644
> --- a/src/util/cgroup.c
> +++ b/src/util/cgroup.c
> @@ -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);
>      }

  ACK,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list