aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorAlexey Dobriyan <adobriyan@sw.ru>2007-10-19 02:41:10 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-19 14:53:56 -0400
commita39bc51691a0c8880b7d10fa7c2f034f3ba9a037 (patch)
tree6f74815a32b5344cbfc2b3eca6def411308c06fb /kernel/fork.c
parenta24efe62dd165be7d03431cf936ae17d345fed69 (diff)
Uninline fork.c/exit.c
Save ~650 bytes here. add/remove: 4/0 grow/shrink: 0/7 up/down: 430/-1088 (-658) function old new delta __copy_fs_struct - 202 +202 __put_fs_struct - 112 +112 __exit_fs - 58 +58 __exit_files - 58 +58 exit_files 58 2 -56 put_fs_struct 112 5 -107 exit_fs 161 2 -159 sys_unshare 774 590 -184 copy_process 4031 3840 -191 do_exit 1791 1597 -194 copy_fs_struct 202 5 -197 No difference in lmbench lat_proc tests on 2-way Opteron 246. Smaaaal degradation on UP P4 (within errors). [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru> Cc: Arjan van de Ven <arjan@infradead.org> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 43958d41e65a..ddafdfac9456 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -206,7 +206,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
206} 206}
207 207
208#ifdef CONFIG_MMU 208#ifdef CONFIG_MMU
209static inline int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) 209static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
210{ 210{
211 struct vm_area_struct *mpnt, *tmp, **pprev; 211 struct vm_area_struct *mpnt, *tmp, **pprev;
212 struct rb_node **rb_link, *rb_parent; 212 struct rb_node **rb_link, *rb_parent;
@@ -584,7 +584,7 @@ fail_nomem:
584 return retval; 584 return retval;
585} 585}
586 586
587static inline struct fs_struct *__copy_fs_struct(struct fs_struct *old) 587static struct fs_struct *__copy_fs_struct(struct fs_struct *old)
588{ 588{
589 struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL); 589 struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL);
590 /* We don't need to lock fs - think why ;-) */ 590 /* We don't need to lock fs - think why ;-) */
@@ -616,7 +616,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
616 616
617EXPORT_SYMBOL_GPL(copy_fs_struct); 617EXPORT_SYMBOL_GPL(copy_fs_struct);
618 618
619static inline int copy_fs(unsigned long clone_flags, struct task_struct * tsk) 619static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
620{ 620{
621 if (clone_flags & CLONE_FS) { 621 if (clone_flags & CLONE_FS) {
622 atomic_inc(&current->fs->count); 622 atomic_inc(&current->fs->count);
@@ -819,7 +819,7 @@ int unshare_files(void)
819 819
820EXPORT_SYMBOL(unshare_files); 820EXPORT_SYMBOL(unshare_files);
821 821
822static inline int copy_sighand(unsigned long clone_flags, struct task_struct * tsk) 822static int copy_sighand(unsigned long clone_flags, struct task_struct *tsk)
823{ 823{
824 struct sighand_struct *sig; 824 struct sighand_struct *sig;
825 825
@@ -842,7 +842,7 @@ void __cleanup_sighand(struct sighand_struct *sighand)
842 kmem_cache_free(sighand_cachep, sighand); 842 kmem_cache_free(sighand_cachep, sighand);
843} 843}
844 844
845static inline int copy_signal(unsigned long clone_flags, struct task_struct * tsk) 845static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
846{ 846{
847 struct signal_struct *sig; 847 struct signal_struct *sig;
848 int ret; 848 int ret;
@@ -924,7 +924,7 @@ void __cleanup_signal(struct signal_struct *sig)
924 kmem_cache_free(signal_cachep, sig); 924 kmem_cache_free(signal_cachep, sig);
925} 925}
926 926
927static inline void cleanup_signal(struct task_struct *tsk) 927static void cleanup_signal(struct task_struct *tsk)
928{ 928{
929 struct signal_struct *sig = tsk->signal; 929 struct signal_struct *sig = tsk->signal;
930 930
@@ -934,7 +934,7 @@ static inline void cleanup_signal(struct task_struct *tsk)
934 __cleanup_signal(sig); 934 __cleanup_signal(sig);
935} 935}
936 936
937static inline void copy_flags(unsigned long clone_flags, struct task_struct *p) 937static void copy_flags(unsigned long clone_flags, struct task_struct *p)
938{ 938{
939 unsigned long new_flags = p->flags; 939 unsigned long new_flags = p->flags;
940 940
@@ -953,7 +953,7 @@ asmlinkage long sys_set_tid_address(int __user *tidptr)
953 return task_pid_vnr(current); 953 return task_pid_vnr(current);
954} 954}
955 955
956static inline void rt_mutex_init_task(struct task_struct *p) 956static void rt_mutex_init_task(struct task_struct *p)
957{ 957{
958 spin_lock_init(&p->pi_lock); 958 spin_lock_init(&p->pi_lock);
959#ifdef CONFIG_RT_MUTEXES 959#ifdef CONFIG_RT_MUTEXES
@@ -1385,7 +1385,7 @@ struct task_struct * __cpuinit fork_idle(int cpu)
1385 return task; 1385 return task;
1386} 1386}
1387 1387
1388static inline int fork_traceflag (unsigned clone_flags) 1388static int fork_traceflag(unsigned clone_flags)
1389{ 1389{
1390 if (clone_flags & CLONE_UNTRACED) 1390 if (clone_flags & CLONE_UNTRACED)
1391 return 0; 1391 return 0;
@@ -1521,7 +1521,7 @@ void __init proc_caches_init(void)
1521 * Check constraints on flags passed to the unshare system call and 1521 * Check constraints on flags passed to the unshare system call and
1522 * force unsharing of additional process context as appropriate. 1522 * force unsharing of additional process context as appropriate.
1523 */ 1523 */
1524static inline void check_unshare_flags(unsigned long *flags_ptr) 1524static void check_unshare_flags(unsigned long *flags_ptr)
1525{ 1525{
1526 /* 1526 /*
1527 * If unsharing a thread from a thread group, must also 1527 * If unsharing a thread from a thread group, must also