diff options
Diffstat (limited to 'kernel/pid.c')
-rw-r--r-- | kernel/pid.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/kernel/pid.c b/kernel/pid.c index 78b3d9f80d44..b17263be9082 100644 --- a/kernel/pid.c +++ b/kernel/pid.c | |||
@@ -526,8 +526,11 @@ pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, | |||
526 | if (!ns) | 526 | if (!ns) |
527 | ns = task_active_pid_ns(current); | 527 | ns = task_active_pid_ns(current); |
528 | if (likely(pid_alive(task))) { | 528 | if (likely(pid_alive(task))) { |
529 | if (type != PIDTYPE_PID) | 529 | if (type != PIDTYPE_PID) { |
530 | if (type == __PIDTYPE_TGID) | ||
531 | type = PIDTYPE_PID; | ||
530 | task = task->group_leader; | 532 | task = task->group_leader; |
533 | } | ||
531 | nr = pid_nr_ns(rcu_dereference(task->pids[type].pid), ns); | 534 | nr = pid_nr_ns(rcu_dereference(task->pids[type].pid), ns); |
532 | } | 535 | } |
533 | rcu_read_unlock(); | 536 | rcu_read_unlock(); |
@@ -536,12 +539,6 @@ pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, | |||
536 | } | 539 | } |
537 | EXPORT_SYMBOL(__task_pid_nr_ns); | 540 | EXPORT_SYMBOL(__task_pid_nr_ns); |
538 | 541 | ||
539 | pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns) | ||
540 | { | ||
541 | return pid_nr_ns(task_tgid(tsk), ns); | ||
542 | } | ||
543 | EXPORT_SYMBOL(task_tgid_nr_ns); | ||
544 | |||
545 | struct pid_namespace *task_active_pid_ns(struct task_struct *tsk) | 542 | struct pid_namespace *task_active_pid_ns(struct task_struct *tsk) |
546 | { | 543 | { |
547 | return ns_of_pid(task_pid(tsk)); | 544 | return ns_of_pid(task_pid(tsk)); |