858d72ead4
When a task enters a new namespace via a clone() or unshare(), a new cgroup is created and the task moves into it. This version names cgroups which are automatically created using cgroup_clone() as "node_<pid>" where pid is the pid of the unsharing or cloned process. (Thanks Pavel for the idea) This is safe because if the process unshares again, it will create /cgroups/(...)/node_<pid>/node_<pid> The only possibilities (AFAICT) for a -EEXIST on unshare are 1. pid wraparound 2. a process fails an unshare, then tries again. Case 1 is unlikely enough that I ignore it (at least for now). In case 2, the node_<pid> will be empty and can be rmdir'ed to make the subsequent unshare() succeed. Changelog: Name cloned cgroups as "node_<pid>". [clg@fr.ibm.com: fix order of cgroup subsystems in init/Kconfig] Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Cc: Paul Menage <menage@google.com> Signed-off-by: Cedric Le Goater <clg@fr.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
33 lines
389 B
C
33 lines
389 B
C
/* Add subsystem definitions of the form SUBSYS(<name>) in this
|
|
* file. Surround each one by a line of comment markers so that
|
|
* patches don't collide
|
|
*/
|
|
|
|
/* */
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CPUSETS
|
|
SUBSYS(cpuset)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_CPUACCT
|
|
SUBSYS(cpuacct)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_DEBUG
|
|
SUBSYS(debug)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_NS
|
|
SUBSYS(ns)
|
|
#endif
|
|
|
|
/* */
|