From: Cedric Le Goater Date: Mon, 2 Oct 2006 09:18:09 +0000 (-0700) Subject: [PATCH] namespaces: exit_task_namespaces() invalidates nsproxy X-Git-Tag: v2.6.19-rc1~415 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fab413a334a7b3dd2688c5cd5d4718476e430ea4;p=linux-2.6 [PATCH] namespaces: exit_task_namespaces() invalidates nsproxy exit_task_namespaces() has replaced the former exit_namespace(). It invalidates task->nsproxy and associated namespaces. This is an issue for the (futur) pid namespace which is required to be valid in exit_notify(). This patch moves exit_task_namespaces() after exit_notify() to keep nsproxy valid. Signed-off-by: Cedric Le Goater Cc: Serge E. Hallyn Cc: Kirill Korotaev Cc: "Eric W. Biederman" Cc: Herbert Poetzl Cc: Andrey Savochkin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/exit.c b/kernel/exit.c index 741bbe42df..f250a5e3e2 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -920,7 +920,6 @@ fastcall NORET_TYPE void do_exit(long code) exit_sem(tsk); __exit_files(tsk); __exit_fs(tsk); - exit_task_namespaces(tsk); exit_thread(); cpuset_exit(tsk); exit_keys(tsk); @@ -935,6 +934,7 @@ fastcall NORET_TYPE void do_exit(long code) tsk->exit_code = code; proc_exit_connector(tsk); exit_notify(tsk); + exit_task_namespaces(tsk); #ifdef CONFIG_NUMA mpol_free(tsk->mempolicy); tsk->mempolicy = NULL;