Messages in this thread Patch in this message | | | Date | Tue, 4 Nov 2008 14:03:14 -0200 | From | "Luiz Fernando N. Capitulino" <> | Subject | PATCH: __bprm_mm_init(): remove uneeded goto |
| |
It is only really used if insert_vm_struct() fails, we can inline it and drop some (uneeded) lines of code.
Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
--- fs/exec.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)
Index: linux-2.6/fs/exec.c =================================================================== --- linux-2.6.orig/fs/exec.c +++ linux-2.6/fs/exec.c @@ -232,13 +232,13 @@ static void flush_arg_page(struct linux_ static int __bprm_mm_init(struct linux_binprm *bprm) { - int err = -ENOMEM; + int err; struct vm_area_struct *vma = NULL; struct mm_struct *mm = bprm->mm; bprm->vma = vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); if (!vma) - goto err; + return -ENOMEM; down_write(&mm->mmap_sem); vma->vm_mm = mm; @@ -257,7 +257,9 @@ static int __bprm_mm_init(struct linux_b err = insert_vm_struct(mm, vma); if (err) { up_write(&mm->mmap_sem); - goto err; + kmem_cache_free(vm_area_cachep, vma); + bprm->vma = NULL; + return err; } mm->stack_vm = mm->total_vm = 1; @@ -266,14 +268,6 @@ static int __bprm_mm_init(struct linux_b bprm->p = vma->vm_end - sizeof(void *); return 0; - -err: - if (vma) { - bprm->vma = NULL; - kmem_cache_free(vm_area_cachep, vma); - } - - return err; } static bool valid_arg_len(struct linux_binprm *bprm, long len)
-- Luiz Fernando N. Capitulino
| |