diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 20:12:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 20:12:13 -0400 |
commit | 7f0ef0267e20d62d45d527911a993b1e998f4968 (patch) | |
tree | de51abc7da5903f59d83e23937f22420164c9477 /kernel/pid.c | |
parent | 862f0012549110d6f2586bf54b52ed4540cbff3a (diff) | |
parent | 9307c29524502c21f0e8a6d96d850b2f5bc0bd9a (diff) |
Merge branch 'akpm' (updates from Andrew Morton)
Merge first patch-bomb from Andrew Morton:
- various misc bits
- I'm been patchmonkeying ocfs2 for a while, as Joel and Mark have been
distracted. There has been quite a bit of activity.
- About half the MM queue
- Some backlight bits
- Various lib/ updates
- checkpatch updates
- zillions more little rtc patches
- ptrace
- signals
- exec
- procfs
- rapidio
- nbd
- aoe
- pps
- memstick
- tools/testing/selftests updates
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (445 commits)
tools/testing/selftests: don't assume the x bit is set on scripts
selftests: add .gitignore for kcmp
selftests: fix clean target in kcmp Makefile
selftests: add .gitignore for vm
selftests: add hugetlbfstest
self-test: fix make clean
selftests: exit 1 on failure
kernel/resource.c: remove the unneeded assignment in function __find_resource
aio: fix wrong comment in aio_complete()
drivers/w1/slaves/w1_ds2408.c: add magic sequence to disable P0 test mode
drivers/memstick/host/r592.c: convert to module_pci_driver
drivers/memstick/host/jmb38x_ms: convert to module_pci_driver
pps-gpio: add device-tree binding and support
drivers/pps/clients/pps-gpio.c: convert to module_platform_driver
drivers/pps/clients/pps-gpio.c: convert to devm_* helpers
drivers/parport/share.c: use kzalloc
Documentation/accounting/getdelays.c: avoid strncpy in accounting tool
aoe: update internal version number to v83
aoe: update copyright date
aoe: perform I/O completions in parallel
...
Diffstat (limited to 'kernel/pid.c')
-rw-r--r-- | kernel/pid.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/kernel/pid.c b/kernel/pid.c index 0db3e791a06d..66505c1dfc51 100644 --- a/kernel/pid.c +++ b/kernel/pid.c | |||
@@ -75,6 +75,7 @@ struct pid_namespace init_pid_ns = { | |||
75 | [ 0 ... PIDMAP_ENTRIES-1] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } | 75 | [ 0 ... PIDMAP_ENTRIES-1] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } |
76 | }, | 76 | }, |
77 | .last_pid = 0, | 77 | .last_pid = 0, |
78 | .nr_hashed = PIDNS_HASH_ADDING, | ||
78 | .level = 0, | 79 | .level = 0, |
79 | .child_reaper = &init_task, | 80 | .child_reaper = &init_task, |
80 | .user_ns = &init_user_ns, | 81 | .user_ns = &init_user_ns, |
@@ -373,14 +374,10 @@ EXPORT_SYMBOL_GPL(find_vpid); | |||
373 | /* | 374 | /* |
374 | * attach_pid() must be called with the tasklist_lock write-held. | 375 | * attach_pid() must be called with the tasklist_lock write-held. |
375 | */ | 376 | */ |
376 | void attach_pid(struct task_struct *task, enum pid_type type, | 377 | void attach_pid(struct task_struct *task, enum pid_type type) |
377 | struct pid *pid) | ||
378 | { | 378 | { |
379 | struct pid_link *link; | 379 | struct pid_link *link = &task->pids[type]; |
380 | 380 | hlist_add_head_rcu(&link->node, &link->pid->tasks[type]); | |
381 | link = &task->pids[type]; | ||
382 | link->pid = pid; | ||
383 | hlist_add_head_rcu(&link->node, &pid->tasks[type]); | ||
384 | } | 381 | } |
385 | 382 | ||
386 | static void __change_pid(struct task_struct *task, enum pid_type type, | 383 | static void __change_pid(struct task_struct *task, enum pid_type type, |
@@ -412,7 +409,7 @@ void change_pid(struct task_struct *task, enum pid_type type, | |||
412 | struct pid *pid) | 409 | struct pid *pid) |
413 | { | 410 | { |
414 | __change_pid(task, type, pid); | 411 | __change_pid(task, type, pid); |
415 | attach_pid(task, type, pid); | 412 | attach_pid(task, type); |
416 | } | 413 | } |
417 | 414 | ||
418 | /* transfer_pid is an optimization of attach_pid(new), detach_pid(old) */ | 415 | /* transfer_pid is an optimization of attach_pid(new), detach_pid(old) */ |
@@ -594,7 +591,6 @@ void __init pidmap_init(void) | |||
594 | /* Reserve PID 0. We never call free_pidmap(0) */ | 591 | /* Reserve PID 0. We never call free_pidmap(0) */ |
595 | set_bit(0, init_pid_ns.pidmap[0].page); | 592 | set_bit(0, init_pid_ns.pidmap[0].page); |
596 | atomic_dec(&init_pid_ns.pidmap[0].nr_free); | 593 | atomic_dec(&init_pid_ns.pidmap[0].nr_free); |
597 | init_pid_ns.nr_hashed = PIDNS_HASH_ADDING; | ||
598 | 594 | ||
599 | init_pid_ns.pid_cachep = KMEM_CACHE(pid, | 595 | init_pid_ns.pid_cachep = KMEM_CACHE(pid, |
600 | SLAB_HWCACHE_ALIGN | SLAB_PANIC); | 596 | SLAB_HWCACHE_ALIGN | SLAB_PANIC); |