ppid = pid_alive(p) ?
                task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0;
        tpid = pid_alive(p) && p->ptrace ?
-               task_ppid_nr_ns(rcu_dereference(p->parent), ns) : 0;
+               task_pid_nr_ns(rcu_dereference(p->parent), ns) : 0;
        buffer += sprintf(buffer,
                "State:\t%s\n"
                "Tgid:\t%d\n"
        cgtime = gtime = cputime_zero;
 
        rcu_read_lock();
+       ppid = task_tgid_nr_ns(task->real_parent, ns);
        if (lock_task_sighand(task, &flags)) {
                struct signal_struct *sig = task->signal;
 
 
                sid = task_session_nr_ns(task, ns);
                pgid = task_pgrp_nr_ns(task, ns);
-               ppid = task_ppid_nr_ns(task, ns);
 
                unlock_task_sighand(task, &flags);
        }
 
  *
  * set_task_vxid()   : assigns a virtual id to a task;
  *
- * task_ppid_nr_ns() : the parent's id as seen from the namespace specified.
- *                     the result depends on the namespace and whether the
- *                     task in question is the namespace's init. e.g. for the
- *                     namespace's init this will return 0 when called from
- *                     the namespace of this init, or appropriate id otherwise.
- *
- *
  * see also pid_nr() etc in include/linux/pid.h
  */
 
 }
 
 
-static inline pid_t task_ppid_nr_ns(struct task_struct *tsk,
-               struct pid_namespace *ns)
-{
-       return pid_nr_ns(task_pid(rcu_dereference(tsk->real_parent)), ns);
-}
-
 /**
  * pid_alive - check that a task structure is not stale
  * @p: Task structure to be checked.
 
        int pid;
 
        rcu_read_lock();
-       pid = task_ppid_nr_ns(current, current->nsproxy->pid_ns);
+       pid = task_tgid_nr_ns(current->real_parent, current->nsproxy->pid_ns);
        rcu_read_unlock();
 
        return pid;