diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2007-10-12 21:27:47 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2007-10-12 21:27:47 -0400 |
commit | b981d8b3f5e008ff10d993be633ad00564fc22cd (patch) | |
tree | e292dc07b22308912cf6a58354a608b9e5e8e1fd /kernel/fork.c | |
parent | b11d2127c4893a7315d1e16273bc8560049fa3ca (diff) | |
parent | 2b9e0aae1d50e880c58d46788e5e3ebd89d75d62 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/macintosh/adbhid.c
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index ba39bdb2a7b8..5e67f90a1694 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -137,7 +137,7 @@ void __init fork_init(unsigned long mempages) | |||
137 | /* create a slab on which task_structs can be allocated */ | 137 | /* create a slab on which task_structs can be allocated */ |
138 | task_struct_cachep = | 138 | task_struct_cachep = |
139 | kmem_cache_create("task_struct", sizeof(struct task_struct), | 139 | kmem_cache_create("task_struct", sizeof(struct task_struct), |
140 | ARCH_MIN_TASKALIGN, SLAB_PANIC, NULL, NULL); | 140 | ARCH_MIN_TASKALIGN, SLAB_PANIC, NULL); |
141 | #endif | 141 | #endif |
142 | 142 | ||
143 | /* | 143 | /* |
@@ -334,6 +334,8 @@ static struct mm_struct * mm_init(struct mm_struct * mm) | |||
334 | atomic_set(&mm->mm_count, 1); | 334 | atomic_set(&mm->mm_count, 1); |
335 | init_rwsem(&mm->mmap_sem); | 335 | init_rwsem(&mm->mmap_sem); |
336 | INIT_LIST_HEAD(&mm->mmlist); | 336 | INIT_LIST_HEAD(&mm->mmlist); |
337 | mm->flags = (current->mm) ? current->mm->flags | ||
338 | : MMF_DUMP_FILTER_DEFAULT; | ||
337 | mm->core_waiters = 0; | 339 | mm->core_waiters = 0; |
338 | mm->nr_ptes = 0; | 340 | mm->nr_ptes = 0; |
339 | set_mm_counter(mm, file_rss, 0); | 341 | set_mm_counter(mm, file_rss, 0); |
@@ -1436,7 +1438,7 @@ static void sighand_ctor(void *data, struct kmem_cache *cachep, | |||
1436 | struct sighand_struct *sighand = data; | 1438 | struct sighand_struct *sighand = data; |
1437 | 1439 | ||
1438 | spin_lock_init(&sighand->siglock); | 1440 | spin_lock_init(&sighand->siglock); |
1439 | INIT_LIST_HEAD(&sighand->signalfd_list); | 1441 | init_waitqueue_head(&sighand->signalfd_wqh); |
1440 | } | 1442 | } |
1441 | 1443 | ||
1442 | void __init proc_caches_init(void) | 1444 | void __init proc_caches_init(void) |
@@ -1444,22 +1446,22 @@ void __init proc_caches_init(void) | |||
1444 | sighand_cachep = kmem_cache_create("sighand_cache", | 1446 | sighand_cachep = kmem_cache_create("sighand_cache", |
1445 | sizeof(struct sighand_struct), 0, | 1447 | sizeof(struct sighand_struct), 0, |
1446 | SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_DESTROY_BY_RCU, | 1448 | SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_DESTROY_BY_RCU, |
1447 | sighand_ctor, NULL); | 1449 | sighand_ctor); |
1448 | signal_cachep = kmem_cache_create("signal_cache", | 1450 | signal_cachep = kmem_cache_create("signal_cache", |
1449 | sizeof(struct signal_struct), 0, | 1451 | sizeof(struct signal_struct), 0, |
1450 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL, NULL); | 1452 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); |
1451 | files_cachep = kmem_cache_create("files_cache", | 1453 | files_cachep = kmem_cache_create("files_cache", |
1452 | sizeof(struct files_struct), 0, | 1454 | sizeof(struct files_struct), 0, |
1453 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL, NULL); | 1455 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); |
1454 | fs_cachep = kmem_cache_create("fs_cache", | 1456 | fs_cachep = kmem_cache_create("fs_cache", |
1455 | sizeof(struct fs_struct), 0, | 1457 | sizeof(struct fs_struct), 0, |
1456 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL, NULL); | 1458 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); |
1457 | vm_area_cachep = kmem_cache_create("vm_area_struct", | 1459 | vm_area_cachep = kmem_cache_create("vm_area_struct", |
1458 | sizeof(struct vm_area_struct), 0, | 1460 | sizeof(struct vm_area_struct), 0, |
1459 | SLAB_PANIC, NULL, NULL); | 1461 | SLAB_PANIC, NULL); |
1460 | mm_cachep = kmem_cache_create("mm_struct", | 1462 | mm_cachep = kmem_cache_create("mm_struct", |
1461 | sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN, | 1463 | sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN, |
1462 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL, NULL); | 1464 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); |
1463 | } | 1465 | } |
1464 | 1466 | ||
1465 | /* | 1467 | /* |
@@ -1606,7 +1608,8 @@ asmlinkage long sys_unshare(unsigned long unshare_flags) | |||
1606 | err = -EINVAL; | 1608 | err = -EINVAL; |
1607 | if (unshare_flags & ~(CLONE_THREAD|CLONE_FS|CLONE_NEWNS|CLONE_SIGHAND| | 1609 | if (unshare_flags & ~(CLONE_THREAD|CLONE_FS|CLONE_NEWNS|CLONE_SIGHAND| |
1608 | CLONE_VM|CLONE_FILES|CLONE_SYSVSEM| | 1610 | CLONE_VM|CLONE_FILES|CLONE_SYSVSEM| |
1609 | CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWUSER)) | 1611 | CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWUSER| |
1612 | CLONE_NEWNET)) | ||
1610 | goto bad_unshare_out; | 1613 | goto bad_unshare_out; |
1611 | 1614 | ||
1612 | if ((err = unshare_thread(unshare_flags))) | 1615 | if ((err = unshare_thread(unshare_flags))) |