From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Hansen Subject: Re: [PATCH] pidns: Limit kill -1 and cap_set_all Date: Mon, 29 Oct 2007 09:02:18 -0700 Message-ID: <1193673738.24087.176.camel@localhost> References: Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: "Eric W. Biederman" Cc: Linus Torvalds , linux-kernel@vger.kernel.org, Linux Containers , Andrew Morton , Oleg Nesterov , Pavel Emelyanov , "Sukadev Bhattiprolu [imap]" List-Id: containers.vger.kernel.org On Fri, 2007-10-26 at 14:37 -0600, Eric W. Biederman wrote: > > +static int pid_in_pid_ns(struct pid *pid, struct pid_namespace *ns) > +{ > + return pid && (ns->level <= pid->level) && > + pid->numbers[ns->level].ns == ns; > +} Could we blow this out a little bit? (I think the blown-out version lends itself to being better commented, and easier to read.) Also, can we think of any better name for this? It seems a bit funky that: pid_in_pid_ns(mypid, &init_pid_ns); would _ever_ return 0. So, it isn't truly a test for belonging *in* a namespace, but having that namespace be the lowest level one. I think Suka toyed with calling it an "active" or "primary" pid namespace. That differentiated mere membership in a pid namespace from the one that actually molds that pid's view of the world. static int pid_in_pid_ns(struct pid *pid, struct pid_namespace *ns) { if (!pid) return 0; if (ns->level > pid->level) return 0; if (pid->numbers[ns->level].ns != ns) return 0; return 1; } -- Dave