Eric W. Biederman
61bce0f137
pid: generalize task_active_pid_ns
...
Currently task_active_pid_ns is not safe to call after a task becomes a
zombie and exit_task_namespaces is called, as nsproxy becomes NULL. By
reading the pid namespace from the pid of the task we can trivially solve
this problem at the cost of one extra memory read in what should be the
same cacheline as we read the namespace from.
When moving things around I have made task_active_pid_ns out of line
because keeping it in pid_namespace.h would require adding includes of
pid.h and sched.h that I don't think we want.
This change does make task_active_pid_ns unsafe to call during
copy_process until we attach a pid on the task_struct which seems to be a
reasonable trade off.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Roland McGrath <roland@redhat.com>
Cc: Bastian Blank <bastian@waldi.eu.org>
Cc: Pavel Emelyanov <xemul@openvz.org>
Cc: Nadia Derbey <Nadia.Derbey@bull.net>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-08 08:31:12 -08:00
..
irq
async: Asynchronous function calls to speed up kernel boot
2009-01-07 08:45:46 -08:00
power
pm: struct device - replace bus_id with dev_name(), dev_set_name()
2009-01-06 10:44:39 -08:00
time
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2009-01-07 11:31:52 -08:00
trace
Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-02 11:44:09 -08:00
.gitignore
acct.c
async.c
async: don't do the initcall stuff post boot
2009-01-07 09:31:49 -08:00
audit.c
[PATCH] fix broken timestamps in AVC generated by kernel threads
2008-12-09 02:27:41 -05:00
audit.h
fixing audit rule ordering mess, part 1
2009-01-04 15:14:41 -05:00
audit_tree.c
audit: validate comparison operations, store them in sane form
2009-01-04 15:14:42 -05:00
auditfilter.c
audit: validate comparison operations, store them in sane form
2009-01-04 15:14:42 -05:00
auditsc.c
make sure that filterkey of task,always rules is reported
2009-01-04 15:14:42 -05:00
backtracetest.c
bounds.c
capability.c
Merge branch 'next' into for-linus
2009-01-07 09:58:22 +11:00
cgroup.c
cgroups: add css_tryget()
2009-01-08 08:31:10 -08:00
cgroup_debug.c
cgroup_freezer.c
compat.c
Allow times and time system calls to return small negative values
2009-01-06 15:59:13 -08:00
configs.c
cpu.c
stop_machine/cpu hotplug: fix disable_nonboot_cpus
2009-01-07 11:36:14 -08:00
cpuset.c
cpuset: remove remaining pointers to cpumask_t
2009-01-08 08:31:11 -08:00
cred-internals.h
cred.c
User namespaces: set of cleanups (v2)
2008-11-24 18:57:41 -05:00
delayacct.c
schedstat: consolidate per-task cpu runtime stats
2008-12-18 13:54:01 +01:00
dma-coherent.c
dma-coherent: catch oversized requests to dma_alloc_from_coherent()
2009-01-06 15:59:31 -08:00
dma.c
exec_domain.c
exit.c
mm: introduce get_mm_hiwater_xxx(), fix taskstats->hiwater_xxx accounting
2009-01-06 15:59:09 -08:00
extable.c
Merge branch 'core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-30 16:10:19 -08:00
fork.c
pid: generalize task_active_pid_ns
2009-01-08 08:31:12 -08:00
freezer.c
futex.c
Merge branches 'core/futexes', 'core/locking', 'core/rcu' and 'linus' into core/urgent
2009-01-06 09:32:11 +01:00
futex_compat.c
hrtimer.c
hrtimer: splitout peek ahead functionality, fix
2009-01-05 14:11:10 +01:00
itimer.c
kallsyms.c
allow stripping of generated symbols under CONFIG_KALLSYMS_ALL
2008-12-19 22:47:10 +01:00
Kconfig.freezer
Kconfig.hz
Kconfig.preempt
rcu: provide RCU options on non-preempt architectures too
2008-12-25 09:31:28 +01:00
kexec.c
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: core
2009-01-01 10:12:15 +10:30
kfifo.c
kgdb.c
kmod.c
kmod: fix varargs kernel-doc
2009-01-06 15:59:27 -08:00
kprobes.c
kprobes: support probing module __init function
2009-01-06 15:59:21 -08:00
ksysfs.c
kernel/ksysfs.c:fix dependence on CONFIG_NET
2009-01-06 10:44:31 -08:00
kthread.c
tracepoints: add DECLARE_TRACE() and DEFINE_TRACE()
2008-11-16 09:01:36 +01:00
latencytop.c
KSYM_SYMBOL_LEN fixes
2008-12-10 08:01:54 -08:00
lockdep.c
Merge branch 'core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-30 16:10:19 -08:00
lockdep_internals.h
lockdep_proc.c
Makefile
async: Asynchronous function calls to speed up kernel boot
2009-01-07 08:45:46 -08:00
marker.c
markers/tracpoints: fix non-modular build
2008-11-16 09:52:03 +01:00
module.c
async: Asynchronous function calls to speed up kernel boot
2009-01-07 08:45:46 -08:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex: __used is needed for function referenced only from inline asm
2008-11-24 10:00:28 +01:00
mutex.h
notifier.c
Merge commit 'v2.6.28-rc6' into core/debug
2008-11-26 08:22:50 +01:00
ns_cgroup.c
ns_cgroup: remove unused spinlock
2009-01-08 08:31:02 -08:00
nsproxy.c
User namespaces: set of cleanups (v2)
2008-11-24 18:57:41 -05:00
panic.c
oops: increment the oops UUID every time we oops
2009-01-06 15:59:12 -08:00
params.c
pid.c
pid: generalize task_active_pid_ns
2009-01-08 08:31:12 -08:00
pid_namespace.c
pm_qos_params.c
posix-cpu-timers.c
Merge commit 'v2.6.28' into core/core
2008-12-25 13:51:46 +01:00
posix-timers.c
Merge branches 'timers/clocksource', 'timers/hpet', 'timers/hrtimers', 'timers/nohz', 'timers/ntp', 'timers/posixtimers' and 'timers/rtc' into timers/core
2008-12-25 18:02:25 +01:00
printk.c
trivial: printk: fix indentation of new_text_line declaration
2009-01-06 11:28:06 +01:00
profile.c
profile: don't include <asm/ptrace.h> twice.
2009-01-06 15:59:14 -08:00
ptrace.c
Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-28 12:21:10 -08:00
rcuclassic.c
cpumask: convert RCU implementations, fix
2009-01-03 18:59:25 +01:00
rcupdate.c
rcu: eliminate synchronize_rcu_xxx macro
2009-01-05 10:18:08 +01:00
rcupreempt.c
rcu: eliminate synchronize_rcu_xxx macro
2009-01-05 10:18:08 +01:00
rcupreempt_trace.c
"Tree RCU": scalable classic RCU implementation
2008-12-18 21:56:04 +01:00
rcutorture.c
rcu: fix rcutorture bug
2009-01-05 13:09:49 +01:00
rcutree.c
rcu: make treercu safe for suspend and resume
2009-01-05 10:12:33 +01:00
rcutree_trace.c
"Tree RCU": scalable classic RCU implementation
2008-12-18 21:56:04 +01:00
relay.c
relayfs: fix infinite loop with splice()
2008-12-10 08:01:52 -08:00
res_counter.c
memcg: memory cgroup resource counters for hierarchy
2009-01-08 08:31:05 -08:00
resource.c
resource: allow MMIO exclusivity for device drivers
2009-01-07 11:12:32 -08:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
sched: fix possible recursive rq->lock
2009-01-07 16:10:54 +01:00
sched_clock.c
sched_clock: prevent scd->clock from moving backwards, take #2
2008-12-31 09:53:21 +01:00
sched_cpupri.c
sched: fix section mismatch
2009-01-06 11:07:15 +01:00
sched_cpupri.h
sched: convert struct cpupri_vec cpumask_var_t.
2008-11-24 17:52:22 +01:00
sched_debug.c
sched: add uid information to sched_debug for CONFIG_USER_SCHED
2008-12-01 20:39:50 +01:00
sched_fair.c
Merge branch 'linus' into sched/urgent
2009-01-05 13:53:39 +01:00
sched_features.h
sched_idletask.c
sched_rt.c
sched: put back some stack hog changes that were undone in kernel/sched.c
2009-01-03 19:00:09 +01:00
sched_stats.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask
2009-01-03 18:53:31 +01:00
seccomp.c
semaphore.c
signal.c
SEND_SIG_NOINFO: set si_pid to tgid instead of pid
2009-01-06 15:59:29 -08:00
smp.c
cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: core
2009-01-01 10:12:15 +10:30
softirq.c
Merge branch 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-03 12:04:39 -08:00
softlockup.c
cpumask: convert rest of files in kernel/
2009-01-01 10:12:28 +10:30
spinlock.c
srcu.c
stacktrace.c
stacktrace: provide save_stack_trace_tsk() weak alias
2008-12-25 11:44:43 +01:00
stop_machine.c
stop_machine: introduce stop_machine_create/destroy.
2009-01-05 08:40:14 +10:30
sys.c
Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-06 17:10:33 -08:00
sys_ni.c
reintroduce accept4
2008-11-19 18:49:57 -08:00
sysctl.c
mm: add dirty_background_bytes and dirty_bytes sysctls
2009-01-06 15:59:03 -08:00
sysctl_check.c
taskstats.c
cpumask: convert rest of files in kernel/
2009-01-01 10:12:28 +10:30
test_kprobes.c
kprobes: add tests for register_kprobes
2009-01-06 15:59:20 -08:00
time.c
Allow times and time system calls to return small negative values
2009-01-06 15:59:13 -08:00
timeconst.pl
timer.c
[PATCH] idle cputime accounting
2008-12-31 15:11:46 +01:00
tracepoint.c
markers/tracpoints: fix non-modular build
2008-11-16 09:52:03 +01:00
tsacct.c
mm: introduce get_mm_hiwater_xxx(), fix taskstats->hiwater_xxx accounting
2009-01-06 15:59:09 -08:00
uid16.c
user.c
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-12-28 12:27:58 -08:00
user_namespace.c
User namespaces: set of cleanups (v2)
2008-11-24 18:57:41 -05:00
utsname.c
utsname_sysctl.c
wait.c
workqueue.c
cpumask: convert kernel/workqueue.c
2009-01-01 10:12:25 +10:30