]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
[PATCH-v2] Add the write error handling to cg_set_control_value().
authorKen'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
Thu, 28 Jan 2010 05:45:48 +0000 (11:15 +0530)
committerBalbir Singh <balbir@linux.vnet.ibm.com>
Thu, 28 Jan 2010 05:45:48 +0000 (11:15 +0530)
Changelog since v1:
 o Use fopen/fprintf/fclose instead of open/write/close.
 o Add the error handling against fclose.

cg_set_control_value() is the function for setting a value to a file
of cgroup file system. And current function does not handle the error
of writing to a file. So we cannot know whether setting value is
enable or not. This patch add the error handling for knowing it.

Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
Signed-off-by: Balbir Singh <balbir@linux.vnet.ibm.com>
src/api.c

index 4a7185b602bb48cf0dfd525517617d6d7dbf4db4..cd2e298b93920685c017eec411fb6c079ad67bcd 100644 (file)
--- a/src/api.c
+++ b/src/api.c
@@ -1089,8 +1089,15 @@ static int cg_set_control_value(char *path, char *val)
                return ECGROUPVALUENOTEXIST;
        }
 
-       fprintf(control_file, "%s", val);
-       fclose(control_file);
+       if (fprintf(control_file, "%s", val) < 0) {
+               last_errno = errno;
+               fclose(control_file);
+               return ECGOTHER;
+       }
+       if (fclose(control_file) < 0) {
+               last_errno = errno;
+               return ECGOTHER;
+       }
        return 0;
 }