cgroup, cpuset: replace move_member_tasks_to_cpuset() with cgroup_transfer_tasks()
authorTejun Heo <tj@kernel.org>
Sun, 7 Apr 2013 16:29:50 +0000 (09:29 -0700)
committerTejun Heo <tj@kernel.org>
Sun, 7 Apr 2013 16:29:50 +0000 (09:29 -0700)
commit8cc9934520e7f752fe45d5199664d741ba24a932
tree881744c4c1c69f4c5afc46b80adb1dd71caf58ff
parentd9c10ddddc98db0a316243cd266c466875975a94
cgroup, cpuset: replace move_member_tasks_to_cpuset() with cgroup_transfer_tasks()

When a cpuset becomes empty (no CPU or memory), its tasks are
transferred with the nearest ancestor with execution resources.  This
is implemented using cgroup_scan_tasks() with a callback which grabs
cgroup_mutex and invokes cgroup_attach_task() on each task.

Both cgroup_mutex and cgroup_attach_task() are scheduled to be
unexported.  Implement cgroup_transfer_tasks() in cgroup proper which
is essentially the same as move_member_tasks_to_cpuset() except that
it takes cgroups instead of cpusets and @to comes before @from like
normal functions with those arguments, and replace
move_member_tasks_to_cpuset() with it.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
include/linux/cgroup.h
kernel/cgroup.c
kernel/cpuset.c