diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 72a2a16e2214..4ac56fe3c394 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <linux/vmalloc.h> | 44 | #include <linux/vmalloc.h> |
45 | #include <linux/blkdev.h> | 45 | #include <linux/blkdev.h> |
46 | #include <linux/delay.h> | 46 | #include <linux/delay.h> |
47 | #include <linux/pid_namespace.h> | ||
47 | #include <linux/smp.h> | 48 | #include <linux/smp.h> |
48 | #include <linux/threads.h> | 49 | #include <linux/threads.h> |
49 | #include <linux/timer.h> | 50 | #include <linux/timer.h> |
@@ -1876,7 +1877,7 @@ asmlinkage void schedule_tail(struct task_struct *prev) | |||
1876 | preempt_enable(); | 1877 | preempt_enable(); |
1877 | #endif | 1878 | #endif |
1878 | if (current->set_child_tid) | 1879 | if (current->set_child_tid) |
1879 | put_user(current->pid, current->set_child_tid); | 1880 | put_user(task_pid_vnr(current), current->set_child_tid); |
1880 | } | 1881 | } |
1881 | 1882 | ||
1882 | /* | 1883 | /* |
@@ -4167,7 +4168,8 @@ struct task_struct *idle_task(int cpu) | |||
4167 | */ | 4168 | */ |
4168 | static struct task_struct *find_process_by_pid(pid_t pid) | 4169 | static struct task_struct *find_process_by_pid(pid_t pid) |
4169 | { | 4170 | { |
4170 | return pid ? find_task_by_pid(pid) : current; | 4171 | return pid ? |
4172 | find_task_by_pid_ns(pid, current->nsproxy->pid_ns) : current; | ||
4171 | } | 4173 | } |
4172 | 4174 | ||
4173 | /* Actually do priority change: must hold rq lock. */ | 4175 | /* Actually do priority change: must hold rq lock. */ |