diff options
author | Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp> | 2010-01-28 11:15:48 +0530 |
---|---|---|
committer | Balbir Singh <balbir@linux.vnet.ibm.com> | 2010-01-28 11:15:48 +0530 |
commit | c05a25c145d1584299ecdfe8f941bc8658c809b7 (patch) | |
tree | 2512be84f6bb60af50c0ff6dbbf5853e66514b76 | |
parent | a71b780653da26da0d125e75e9255e124ade966d (diff) | |
download | libcg-c05a25c145d1584299ecdfe8f941bc8658c809b7.tar.gz libcg-c05a25c145d1584299ecdfe8f941bc8658c809b7.tar.xz libcg-c05a25c145d1584299ecdfe8f941bc8658c809b7.zip |
[PATCH-v2] Add the write error handling to cg_set_control_value().
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>
-rw-r--r-- | src/api.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -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; } |