From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Nesterov Subject: Re: [PATCH 5/7] pid: rewrite task helper function is_global_init() avoiding task->pid Date: Thu, 20 Feb 2014 19:39:58 +0100 Message-ID: <20140220183958.GB23993@redhat.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com To: Richard Guy Briggs Cc: peterz@infradead.org, linux-kernel@vger.kernel.org, linux-audit@redhat.com, "Eric W. Biederman" , akpm@linux-foundation.org List-Id: linux-audit@redhat.com On 01/23, Richard Guy Briggs wrote: > > static inline int is_global_init(struct task_struct *tsk) > { > - return tsk->pid == 1; > + return task_pid_nr(tsk) == 1; > } ACK, but we need to fix it. With or without this change is_global_init() actually means is-the-main-thread-of-global-init. This is not what the callers actually want. Just look at oom_unkillable_task(). Suppose that p is the sub-thread of /sbin/init, if we kill this thread we kill the whole process. The same of other callers. is_global_init() should return T if this task is the part of init's thread group. Oleg.