[Devel] Re: [RFC][v3][PATCH 6/7] Define do_fork_with_pids()

Amerigo Wang xiyou.wangcong at gmail.com
Mon Jun 1 01:19:29 PDT 2009


On Sat, May 30, 2009 at 05:02:55PM -0700, Sukadev Bhattiprolu wrote:
>
>From: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
>Date: Mon, 4 May 2009 01:17:44 -0700
>Subject: [RFC][v3][PATCH 6/7] Define do_fork_with_pids()
>
>do_fork_with_pids() is same as do_fork(), except that it takes an
>additional, 'pid_set', parameter. This parameter, currently unused,
>specifies the set of target pids of the process in each of its pid
>namespaces.
>
>Changelog[v3]:
>	- Fix "long-line" warning from checkpatch.pl
>
>Changelog[v2]:
>	- To facilitate moving architecture-inpdendent code to kernel/fork.c
>	  pass in 'struct target_pid_set __user *' to do_fork_with_pids()
>	  rather than 'pid_t *' (next patch moves the arch-independent
>	  code to kernel/fork.c)
>
>Signed-off-by: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
>Acked-by: Serge Hallyn <serue at us.ibm.com>
>Reviewed-by: Oren Laadan <orenl at cs.columbia.edu>
>---
> include/linux/sched.h |    3 +++
> include/linux/types.h |    5 +++++
> kernel/fork.c         |   16 ++++++++++++++--
> 3 files changed, 22 insertions(+), 2 deletions(-)
>
>diff --git a/include/linux/sched.h b/include/linux/sched.h
>index b4c38bc..e3bdb86 100644
>--- a/include/linux/sched.h
>+++ b/include/linux/sched.h
>@@ -1995,6 +1995,9 @@ extern int disallow_signal(int);
> 
> extern int do_execve(char *, char __user * __user *, char __user * __user *, struct pt_regs *);
> extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
>+extern long do_fork_with_pids(unsigned long, unsigned long, struct pt_regs *,
>+				unsigned long, int __user *, int __user *,
>+				struct target_pid_set __user *pid_set);
> struct task_struct *fork_idle(int);
> 
> extern void set_task_comm(struct task_struct *tsk, char *from);
>diff --git a/include/linux/types.h b/include/linux/types.h
>index 5abe354..17ec186 100644
>--- a/include/linux/types.h
>+++ b/include/linux/types.h
>@@ -204,6 +204,11 @@ struct ustat {
> 	char			f_fpack[6];
> };
> 
>+struct target_pid_set {
>+	int num_pids;
>+	pid_t *target_pids;
>+};
>+

A quick question: why not putting this definition into
include/linux/pid.h?

_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list