summaryrefslogtreecommitdiffstats
path: root/api.c
diff options
context:
space:
mode:
authorDhaval Giani <dhaval@linux.vnet.ibm.com>2008-08-14 11:10:23 +0000
committerDhaval Giani <dhaval@linux.vnet.ibm.com>2008-08-14 11:10:23 +0000
commit50fa62e94a849b5b8585b7e35782653b2cae1905 (patch)
tree1fdd4c3ec62f5df8220cb34fdb7e2378f0d1a04d /api.c
parentb469306635955943e2e140f9ef9b4137ab2430d9 (diff)
downloadlibcg-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.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/api.c b/api.c
index a6918a8..56d9af8 100644
--- a/api.c
+++ b/api.c
@@ -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;
}