diff options
author | Dhaval Giani <dhaval@linux.vnet.ibm.com> | 2008-08-14 11:10:23 +0000 |
---|---|---|
committer | Dhaval Giani <dhaval@linux.vnet.ibm.com> | 2008-08-14 11:10:23 +0000 |
commit | 50fa62e94a849b5b8585b7e35782653b2cae1905 (patch) | |
tree | 1fdd4c3ec62f5df8220cb34fdb7e2378f0d1a04d /api.c | |
parent | b469306635955943e2e140f9ef9b4137ab2430d9 (diff) | |
download | libcg-50fa62e94a849b5b8585b7e35782653b2cae1905.tar.gz libcg-50fa62e94a849b5b8585b7e35782653b2cae1905.tar.xz libcg-50fa62e94a849b5b8585b7e35782653b2cae1905.zip |
libcgroup: Fix the delete API
The delete call was returning a wrong value even on success.
The reason was because in the fallback path, we try to delete
all the groups again. Now it is possible that a group might
have already been deleted and we return a wrong value.
Change the API to check if the group exists before trying to rmdir
it in the error path.
Signed-off-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
git-svn-id: https://libcg.svn.sourceforge.net/svnroot/libcg/trunk@145 4f4bb910-9a46-0410-90c8-c897d4f1cd53
Diffstat (limited to 'api.c')
-rw-r--r-- | api.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -691,8 +691,13 @@ base_open_err: cgroup->controller[i]->name)) continue; error = rmdir(path); + if (error < 0 && errno == ENOENT) + error = 0; } } + if (error) + return ECGOTHER; + return error; } |