Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751088AbWBKJo5 (ORCPT ); Sat, 11 Feb 2006 04:44:57 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751177AbWBKJo5 (ORCPT ); Sat, 11 Feb 2006 04:44:57 -0500 Received: from ebiederm.dsl.xmission.com ([166.70.28.69]:39107 "EHLO ebiederm.dsl.xmission.com") by vger.kernel.org with ESMTP id S1751088AbWBKJo5 (ORCPT ); Sat, 11 Feb 2006 04:44:57 -0500 To: Kirill Korotaev Cc: linux-kernel@vger.kernel.org, vserver@list.linux-vserver.org, Herbert Poetzl , "Serge E. Hallyn" , Alan Cox , Dave Hansen , Arjan van de Ven , Suleiman Souhlal , Hubertus Franke , Cedric Le Goater , Kyle Moffett , Greg , Linus Torvalds , Andrew Morton , Greg KH , Rik van Riel , Alexey Kuznetsov , Andrey Savochkin , Kirill Korotaev , Andi Kleen , Benjamin Herrenschmidt , Jeff Garzik , Trond Myklebust , Jes Sorensen Subject: Re: [RFC][PATCH 04/20] pspace: Allow multiple instaces of the process id namespace References: <43ECF803.8080404@sw.ru> From: ebiederm@xmission.com (Eric W. Biederman) Date: Sat, 11 Feb 2006 02:42:25 -0700 In-Reply-To: <43ECF803.8080404@sw.ru> (Kirill Korotaev's message of "Fri, 10 Feb 2006 23:30:59 +0300") Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1376 Lines: 48 Kirill Korotaev writes: >> + * kill_pspace_info() sends a signal to all processes in a process space. >> + * This is what kill(-1, sig) does. >> + */ >> + >> +int __kill_pspace_info(int sig, struct siginfo *info, struct pspace *pspace) >> +{ >> + struct task_struct *p = NULL; >> + int retval = 0, count = 0; >> + >> + for_each_process(p) { >> + int err; >> + /* Skip the current pspace leader */ >> + if (current_pspace_leader(p)) >> + continue; >> + >> + /* Skip the sender of the signal */ >> + if (p->signal == current->signal) >> + continue; >> + >> + /* Skip processes outside the target process space */ >> + if (!in_pspace(pspace, p)) >> + continue; >> + >> + /* Finally it is a good process send the signal. */ >> + err = group_send_sig_info(sig, info, p); >> + ++count; >> + if (err != -EPERM) >> + retval = err; > <<<< > why EPERM is ok? > do you want to miss some tasks? A good question. This is how kill -1 is currently implemented. It doesn't align with how signals are sent to a process group, so it could very well be wrong. >> + } >> + return count ? retval : -ESRCH; >> +} >> + - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/