Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] futex: remove duplicate code

This patch cleans up the error path of futex_fd() by removing duplicate
code.

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Pekka Enberg and committed by
Linus Torvalds
39ed3fde 580b2e3c

+9 -12
+9 -12
kernel/futex.c
··· 786 786 filp->f_mapping = filp->f_dentry->d_inode->i_mapping; 787 787 788 788 if (signal) { 789 - int err; 790 789 err = f_setown(filp, current->pid, 1); 791 790 if (err < 0) { 792 - put_unused_fd(ret); 793 - put_filp(filp); 794 - ret = err; 795 - goto out; 791 + goto error; 796 792 } 797 793 filp->f_owner.signum = signal; 798 794 } 799 795 800 796 q = kmalloc(sizeof(*q), GFP_KERNEL); 801 797 if (!q) { 802 - put_unused_fd(ret); 803 - put_filp(filp); 804 - ret = -ENOMEM; 805 - goto out; 798 + err = -ENOMEM; 799 + goto error; 806 800 } 807 801 808 802 down_read(&current->mm->mmap_sem); ··· 804 810 805 811 if (unlikely(err != 0)) { 806 812 up_read(&current->mm->mmap_sem); 807 - put_unused_fd(ret); 808 - put_filp(filp); 809 813 kfree(q); 810 - return err; 814 + goto error; 811 815 } 812 816 813 817 /* ··· 821 829 fd_install(ret, filp); 822 830 out: 823 831 return ret; 832 + error: 833 + put_unused_fd(ret); 834 + put_filp(filp); 835 + ret = err; 836 + goto out; 824 837 } 825 838 826 839 long do_futex(unsigned long uaddr, int op, int val, unsigned long timeout,