[PATCH 4/4] cgroup: implement task_cgroup_path_from_hierarchy()

Li Zefan lizefan at huawei.com
Mon Apr 15 03:49:57 UTC 2013


On 2013/4/15 11:46, Tejun Heo wrote:
> On Mon, Apr 15, 2013 at 11:43:15AM +0800, Li Zefan wrote:
>>> +int task_cgroup_path_from_hierarchy(struct task_struct *task, int hierarchy_id,
>>> +				    char *buf, size_t buflen)
>>> +{
>>> +	struct cgroupfs_root *root;
>>> +	struct cgroup *cgrp = NULL;
>>> +	int ret = -ENOENT;
>>> +
>>> +	mutex_lock(&cgroup_mutex);
>>> +
>>> +	root = idr_find(&cgroup_hierarchy_idr, hierarchy_id);
>>> +	if (root) {
>>> +		cgrp = task_cgroup_from_root(task, root);
>>
>> task_cgroup_from_root() will never return NULL, and there's a BUG_ON(!res) in it.
> 
> @hierarchy_id may come from userland, so we probably should update
> task_cgroup_from_root() to return NULL if the id is invalid.  Will add
> a patch.
> 

But if id is invalid, idr_find() will return NULL. As long as root is not NULL,
task_cgroup_from_root() will always return a valid cgroup.



More information about the Containers mailing list