linux/fs/proc
Pavel Emelyanov 6f4e643353 pid namespaces: initialize the namespace's proc_mnt
The namespace's proc_mnt must be kern_mount-ed to make this pointer always
valid, independently of whether the user space mounted the proc or not.  This
solves raced in proc_flush_task, etc.  with the proc_mnt switching from NULL
to not-NULL.

The initialization is done after the init's pid is created and hashed to make
proc_get_sb() finr it and get for root inode.

Sice the namespace holds the vfsmnt, vfsmnt holds the superblock and the
superblock holds the namespace we must explicitly break this circle to destroy
all the stuff.  This is done after the init of the namespace dies.  Running a
few steps forward - when init exits it will kill all its children, so no
proc_mnt will be needed after its death.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Sukadev Bhattiprolu <sukadev@us.ibm.com>
Cc: Paul Menage <menage@google.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-19 11:53:40 -07:00
..
Makefile [NET]: Make /proc/net per network namespace 2007-10-10 16:49:06 -07:00
array.c pid namespaces: round up the API 2007-10-19 11:53:37 -07:00
base.c pid namespaces: initialize the namespace's proc_mnt 2007-10-19 11:53:40 -07:00
generic.c Group short-lived and reclaimable kernel allocations 2007-10-16 09:43:00 -07:00
inode-alloc.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
inode.c pid namespaces: make proc have multiple superblocks - one for each namespace 2007-10-19 11:53:39 -07:00
internal.h [NET]: Make /proc/net per network namespace 2007-10-10 16:49:06 -07:00
kcore.c [PATCH] elf: fix kcore note size calculation 2006-12-07 08:39:38 -08:00
kmsg.c [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
mmu.c fs/proc/mmu.c: headers butchery 2007-10-17 08:42:48 -07:00
nommu.c [PATCH] mark struct file_operations const 6 2007-02-12 09:48:45 -08:00
proc_devtree.c [POWERPC] Make struct property's value a void * 2007-04-13 03:55:18 +10:00
proc_misc.c pid namespaces: define and use task_active_pid_ns() wrapper 2007-10-19 11:53:37 -07:00
proc_net.c [NETNS]: Move some code into __init section when CONFIG_NET_NS=n 2007-10-10 16:54:58 -07:00
proc_sysctl.c Remove redundant check from proc_sys_setattr() 2007-05-08 11:15:10 -07:00
proc_tty.c Make /proc/tty/drivers use seq_list_xxx helpers 2007-07-16 09:05:42 -07:00
root.c pid namespaces: initialize the namespace's proc_mnt 2007-10-19 11:53:40 -07:00
task_mmu.c proc: maps protection 2007-05-08 11:15:02 -07:00
task_nommu.c proc: maps protection 2007-05-08 11:15:02 -07:00
vmcore.c [PATCH] i386: Allow i386 crash kernels to handle x86_64 dumps 2007-05-02 19:27:09 +02:00