On Fri, Sep 23, 2011 at 03:52:46PM +0200, Jan Safranek wrote: > groups > > New flag CGFLAG_DELETE_EMPTY_ONLY tells cgroup_delete_cgroup_ext that the > group being deleted must be empty, i.e. have no subgroups and no tasks > inside. > > Signed-off-by: Jan Safranek <jsafr...@redhat.com> > --- > > include/libcgroup/groups.h | 7 +++ > src/api.c | 114 > +++++++++++++++++++++++++------------------- > 2 files changed, 71 insertions(+), 50 deletions(-) > > diff --git a/include/libcgroup/groups.h b/include/libcgroup/groups.h > index 86c5b76..f375a82 100644 > --- a/include/libcgroup/groups.h > +++ b/include/libcgroup/groups.h > @@ -26,6 +26,13 @@ enum cgroup_delete_flag { > * Recursively delete all child groups. > */ > CGFLAG_DELETE_RECURSIVE = 2, > + > + /** > + * Delete the cgroup only if it is empty, i.e. it has no subgroups and > + * no processes inside. This flag cannot be used with > + * CGFLAG_DELETE_RECURSIVE. > + */ > + CGFLAG_DELETE_EMPTY_ONLY = 4, > }; > > /** > diff --git a/src/api.c b/src/api.c > index f6f806e..769c080 100644 > --- a/src/api.c > +++ b/src/api.c > @@ -1856,30 +1856,33 @@ static int cg_delete_cgroup_controller(char > *cgroup_name, char *controller, > > cgroup_dbg("Removing group %s:%s\n", controller, cgroup_name); > > - /* > - * Open tasks file of the group to delete. > - */ > - if (!cg_build_path(cgroup_name, path, controller)) > - return ECGROUPSUBSYSNOTMOUNTED; > - strncat(path, "tasks", sizeof(path) - strlen(path)); > - > - delete_tasks = fopen(path, "re"); > - if (delete_tasks) { > - ret = cg_move_task_files(delete_tasks, target_tasks); > - fclose(delete_tasks); > - } else { > + if (!(flags & CGFLAG_DELETE_EMPTY_ONLY)) { > /*
Will it make sense to introduce a function to check for empty cgroup and return if CGFLAG_DELETE_EMPTY_ONLY is set but cgroup is not empty. It does involve little extra processing but also makes the code little simpler. I think same holds good for other changes in cgroup_delete_cgroup_ext(). Thanks Vivek ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel