diff options
| author | Luca Barbieri <ldb@ldb.ods.org> | 2002-11-17 19:07:11 -0800 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2002-11-17 19:07:11 -0800 |
| commit | 4b95a3f79a98535791fd200a3dd5365418e3f11f (patch) | |
| tree | 358b435e1b53e6ebe841792ab632283aa6c0ec74 /kernel | |
| parent | c041559ffc3177dc1b242b6003a511bcc97a3c2f (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.c | 5 |
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; } |
