diff options
author | Paul Menage <menage@google.com> | 2007-10-19 02:39:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-19 14:53:36 -0400 |
commit | b4f48b6363c81ca743ef46943ef23fd72e60f679 (patch) | |
tree | 40437b78e2d7a7d9d71e7bd63bc96e1ad02daa94 /kernel/exit.c | |
parent | 355e0c48b757b7fcc79ccb98fda8105ed37a1598 (diff) |
Task Control Groups: add fork()/exit() hooks
This adds the necessary hooks to the fork() and exit() paths to ensure
that new children inherit their parent's cgroup assignments, and that
exiting processes release reference counts on their cgroups.
Signed-off-by: Paul Menage <menage@google.com>
Cc: Serge E. Hallyn <serue@us.ibm.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Paul Jackson <pj@sgi.com>
Cc: Kirill Korotaev <dev@openvz.org>
Cc: Herbert Poetzl <herbert@13thfloor.at>
Cc: Srivatsa Vaddagiri <vatsa@in.ibm.com>
Cc: 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>
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 2c704c86edb3..44ff6147556a 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/delayacct.h> | 32 | #include <linux/delayacct.h> |
33 | #include <linux/freezer.h> | 33 | #include <linux/freezer.h> |
34 | #include <linux/cpuset.h> | 34 | #include <linux/cpuset.h> |
35 | #include <linux/cgroup.h> | ||
35 | #include <linux/syscalls.h> | 36 | #include <linux/syscalls.h> |
36 | #include <linux/signal.h> | 37 | #include <linux/signal.h> |
37 | #include <linux/posix-timers.h> | 38 | #include <linux/posix-timers.h> |
@@ -973,6 +974,7 @@ fastcall NORET_TYPE void do_exit(long code) | |||
973 | check_stack_usage(); | 974 | check_stack_usage(); |
974 | exit_thread(); | 975 | exit_thread(); |
975 | cpuset_exit(tsk); | 976 | cpuset_exit(tsk); |
977 | cgroup_exit(tsk, 1); | ||
976 | exit_keys(tsk); | 978 | exit_keys(tsk); |
977 | 979 | ||
978 | if (group_dead && tsk->signal->leader) | 980 | if (group_dead && tsk->signal->leader) |