diff --git a/kernel/pid.c b/kernel/pid.c index f633a7d..c787549 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -303,8 +303,11 @@ void free_pid(struct pid *pid) for (i = 0; i <= pid->level; i++) { struct upid *upid = pid->numbers + i; struct pid_namespace *ns = upid->ns; - if (!hlist_unhashed(&upid->pid_chain)) - hlist_del_rcu(&upid->pid_chain); + + if (hlist_unhashed(&upid->pid_chain)) + continue; + + hlist_del_rcu(&upid->pid_chain); switch(--ns->nr_hashed) { case 2: case 1: