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
..
irq
Compile handle_percpu_irq even for uniprocessor kernels
2007-10-17 08:43:00 -07:00
power
Hibernation: Enter platform hibernation state in a consistent way
2007-10-18 14:37:20 -07:00
time
kernel/time/clocksource.c: Use list_for_each_entry instead of list_for_each
2007-10-19 11:53:38 -07:00
.gitignore
acct.c
whitespace fixes: process accounting
2007-10-18 14:37:24 -07:00
audit.c
whitespace fixes: system auditing
2007-10-18 14:37:25 -07:00
audit.h
auditfilter.c
whitespace fixes: audit filtering
2007-10-18 14:37:24 -07:00
auditsc.c
whitespace fixes: syscall auditing
2007-10-18 14:37:25 -07:00
capability.c
pid namespaces: define is_global_init() and is_container_init()
2007-10-19 11:53:37 -07:00
cgroup.c
Add cgroupstats
2007-10-19 11:53:36 -07:00
cgroup_debug.c
Task Control Groups: simple task cgroup debug info subsystem
2007-10-19 11:53:36 -07:00
compat.c
Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt
2007-10-18 15:12:41 -07:00
configs.c
cpu.c
cpu hotplug: cpu: deliver CPU_UP_CANCELED only to NOTIFY_OKed callbacks with CPU_UP_PREPARE
2007-10-18 14:37:21 -07:00
cpu_acct.c
Task Control Groups: example CPU accounting subsystem
2007-10-19 11:53:36 -07:00
cpuset.c
Task Control Groups: make cpusets a client of cgroups
2007-10-19 11:53:36 -07:00
delayacct.c
Add scaled time to taskstats based process accounting
2007-10-18 14:37:28 -07:00
dma.c
whitespace fixes: DMA channel allocator
2007-10-18 14:37:24 -07:00
exec_domain.c
whitespace fixes: execution domains
2007-10-18 14:37:26 -07:00
exit.c
pid namespaces: prepare proc_flust_task() to flush entries from multiple proc trees
2007-10-19 11:53:38 -07:00
extable.c
fork.c
pid namespaces: initialize the namespace's proc_mnt
2007-10-19 11:53:40 -07:00
futex.c
sparse pointer use of zero as null
2007-10-18 14:37:31 -07:00
futex_compat.c
robust futex thread exit race
2007-10-01 07:52:23 -07:00
hrtimer.c
hrtimer: Rework hrtimer_nanosleep to make sys_compat_nanosleep easier
2007-10-18 22:54:18 +02:00
itimer.c
whitespace fixes: interval timers
2007-10-18 14:37:26 -07:00
kallsyms.c
Kconfig.hz
Kconfig.preempt
Move PREEMPT_NOTIFIERS into an always-included Kconfig
2007-10-17 08:42:55 -07:00
kexec.c
pid namespaces: define is_global_init() and is_container_init()
2007-10-19 11:53:37 -07:00
kfifo.c
kmod.c
Restore call_usermodehelper_pipe() behaviour
2007-09-11 17:21:20 -07:00
kprobes.c
kprobes: support kretprobe blacklist
2007-10-16 09:43:10 -07:00
ksysfs.c
add-vmcore: cleanup the coding style according to Andrew's comments
2007-10-17 08:42:54 -07:00
kthread.c
latency.c
lockdep.c
workqueue: debug flushing deadlocks with lockdep
2007-10-19 11:53:38 -07:00
lockdep_internals.h
lockdep_proc.c
lockdep: Avoid /proc/lockdep & lock_stat infinite output
2007-10-11 22:11:11 +02:00
Makefile
cgroups: implement namespace tracking subsystem
2007-10-19 11:53:37 -07:00
module.c
whitespace fixes: module loading
2007-10-18 14:37:25 -07:00
mutex-debug.c
mutex-debug.h
mutex.c
lockdep: fixup mutex annotations
2007-10-11 22:11:12 +02:00
mutex.h
notifier.c
Add kernel/notifier.c
2007-10-19 11:53:34 -07:00
ns_cgroup.c
cgroups: implement namespace tracking subsystem
2007-10-19 11:53:37 -07:00
nsproxy.c
pid namespaces: allow cloning of new namespace
2007-10-19 11:53:39 -07:00
panic.c
whitespace fixes: panic handling
2007-10-18 14:37:25 -07:00
params.c
param_sysfs_builtin memchr argument fix
2007-10-18 14:37:21 -07:00
pid.c
pid namespaces: allow cloning of new namespace
2007-10-19 11:53:39 -07:00
posix-cpu-timers.c
posix-timers.c
hrtimer: Rework hrtimer_nanosleep to make sys_compat_nanosleep easier
2007-10-18 22:54:18 +02:00
printk.c
serial: turn serial console suspend a boot rather than compile time option
2007-10-18 14:37:19 -07:00
profile.c
make kernel/profile.c:time_hook static
2007-10-17 08:42:55 -07:00
ptrace.c
m32r: convert to generic sys_ptrace
2007-10-16 09:43:04 -07:00
rcupdate.c
Clean up duplicate includes in kernel/
2007-10-17 08:42:48 -07:00
rcutorture.c
Make rcutorture RNG use temporal entropy
2007-10-17 08:42:53 -07:00
relay.c
whitespace fixes: relayfs
2007-10-18 14:37:24 -07:00
resource.c
memory unplug: memory hotplug cleanup
2007-10-16 09:43:01 -07:00
rtmutex-debug.c
kernel/rtmutex-debug.c: cleanups
2007-10-17 08:42:50 -07:00
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
Task Control Groups: example CPU accounting subsystem
2007-10-19 11:53:36 -07:00
sched_debug.c
sched: reduce schedstat variable overhead a bit
2007-10-18 21:32:56 +02:00
sched_fair.c
sched: fix new task startup crash
2007-10-17 16:55:11 +02:00
sched_idletask.c
sched: mark scheduling classes as const
2007-10-15 17:00:12 +02:00
sched_rt.c
sched: tidy up SCHED_RR
2007-10-15 17:00:13 +02:00
sched_stats.h
sched: reduce schedstat variable overhead a bit
2007-10-18 21:32:56 +02:00
seccomp.c
signal.c
pid namespaces: define is_global_init() and is_container_init()
2007-10-19 11:53:37 -07:00
softirq.c
[KERNEL]: Unexport raise_softirq_irqoff
2007-10-10 16:49:18 -07:00
softlockup.c
softlockup: add a /proc tuning parameter
2007-10-17 08:42:47 -07:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
sys.c
pid namespaces: round up the API
2007-10-19 11:53:37 -07:00
sys_ni.c
kernel/sys_ni.c: add dummy sys_ni_syscall() prototype
2007-10-17 08:42:55 -07:00
sysctl.c
pid namespaces: define is_global_init() and is_container_init()
2007-10-19 11:53:37 -07:00
sysctl_check.c
V3 file capabilities: alter behavior of cap_setpcap
2007-10-18 14:37:24 -07:00
taskstats.c
Add cgroupstats
2007-10-19 11:53:36 -07:00
time.c
whitespace fixes: time syscalls
2007-10-18 14:37:24 -07:00
timer.c
Add scaled time to taskstats based process accounting
2007-10-18 14:37:28 -07:00
tsacct.c
Add scaled time to taskstats based process accounting
2007-10-18 14:37:28 -07:00
uid16.c
user.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched
2007-10-17 09:11:18 -07:00
user_namespace.c
Fix user namespace exiting OOPs
2007-09-19 11:24:18 -07:00
utsname.c
Fix UTS corruption during clone(CLONE_NEWUTS)
2007-09-19 11:24:17 -07:00
utsname_sysctl.c
wait.c
workqueue.c
workqueue: debug flushing deadlocks with lockdep
2007-10-19 11:53:38 -07:00