aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c20
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
326static inline void mm_free_pgd(struct mm_struct * mm) 326static 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)