summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLuca Barbieri <ldb@ldb.ods.org>2002-11-17 19:07:11 -0800
committerDavid S. Miller <davem@nuts.ninka.net>2002-11-17 19:07:11 -0800
commit4b95a3f79a98535791fd200a3dd5365418e3f11f (patch)
tree358b435e1b53e6ebe841792ab632283aa6c0ec74 /kernel
parentc041559ffc3177dc1b242b6003a511bcc97a3c2f (diff)
[PATCH] dup_mmap tiny optimization
This patch moves retval = -ENOMEM out of the vma loop and after the fail_nomem label. The fail label is added and is used when retval is already set.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/fork.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index accc05f2fef5..f89734b831ac 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -238,7 +238,6 @@ static inline int dup_mmap(struct mm_struct * mm, struct mm_struct * oldmm)
for (mpnt = current->mm->mmap ; mpnt ; mpnt = mpnt->vm_next) {
struct file *file;
- retval = -ENOMEM;
if(mpnt->vm_flags & VM_DONTCOPY)
continue;
if (mpnt->vm_flags & VM_ACCOUNT) {
@@ -283,7 +282,7 @@ static inline int dup_mmap(struct mm_struct * mm, struct mm_struct * oldmm)
tmp->vm_ops->open(tmp);
if (retval)
- goto fail_nomem;
+ goto fail;
}
retval = 0;
build_mmap_rb(mm);
@@ -293,6 +292,8 @@ out:
up_write(&oldmm->mmap_sem);
return retval;
fail_nomem:
+ retval = -ENOMEM;
+ fail:
vm_unacct_memory(charge);
goto out;
}