diff options
author | Steve French <sfrench@us.ibm.com> | 2008-02-06 11:04:00 -0500 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2008-02-06 11:04:00 -0500 |
commit | f315ccb3e679f271583f2a4f463ad9b65665b751 (patch) | |
tree | 44eb52102587d7b0bb592464cef6ec04bcac8b90 /kernel/fork.c | |
parent | ead03e30b050d6dda769e7e9b071c5fa720bf8d2 (diff) | |
parent | 551e4fb2465b87de9d4aa1669b27d624435443bb (diff) |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 05e0b6f4365b..2b55b74cd999 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -325,7 +325,7 @@ static inline int mm_alloc_pgd(struct mm_struct * mm) | |||
325 | 325 | ||
326 | static inline void mm_free_pgd(struct mm_struct * mm) | 326 | static inline void mm_free_pgd(struct mm_struct * mm) |
327 | { | 327 | { |
328 | pgd_free(mm->pgd); | 328 | pgd_free(mm, mm->pgd); |
329 | } | 329 | } |
330 | #else | 330 | #else |
331 | #define dup_mmap(mm, oldmm) (0) | 331 | #define dup_mmap(mm, oldmm) (0) |
@@ -1118,6 +1118,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1118 | #ifdef CONFIG_SECURITY | 1118 | #ifdef CONFIG_SECURITY |
1119 | p->security = NULL; | 1119 | p->security = NULL; |
1120 | #endif | 1120 | #endif |
1121 | p->cap_bset = current->cap_bset; | ||
1121 | p->io_context = NULL; | 1122 | p->io_context = NULL; |
1122 | p->audit_context = NULL; | 1123 | p->audit_context = NULL; |
1123 | cgroup_fork(p); | 1124 | cgroup_fork(p); |
@@ -1450,6 +1451,23 @@ long do_fork(unsigned long clone_flags, | |||
1450 | int trace = 0; | 1451 | int trace = 0; |
1451 | long nr; | 1452 | long nr; |
1452 | 1453 | ||
1454 | /* | ||
1455 | * We hope to recycle these flags after 2.6.26 | ||
1456 | */ | ||
1457 | if (unlikely(clone_flags & CLONE_STOPPED)) { | ||
1458 | static int __read_mostly count = 100; | ||
1459 | |||
1460 | if (count > 0 && printk_ratelimit()) { | ||
1461 | char comm[TASK_COMM_LEN]; | ||
1462 | |||
1463 | count--; | ||
1464 | printk(KERN_INFO "fork(): process `%s' used deprecated " | ||
1465 | "clone flags 0x%lx\n", | ||
1466 | get_task_comm(comm, current), | ||
1467 | clone_flags & CLONE_STOPPED); | ||
1468 | } | ||
1469 | } | ||
1470 | |||
1453 | if (unlikely(current->ptrace)) { | 1471 | if (unlikely(current->ptrace)) { |
1454 | trace = fork_traceflag (clone_flags); | 1472 | trace = fork_traceflag (clone_flags); |
1455 | if (trace) | 1473 | if (trace) |