diff options
author | Cesar Eduardo Barros <cesarb@cesarb.net> | 2011-03-22 19:33:19 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-22 20:44:06 -0400 |
commit | 730c0581c82dbc5be2f41a2d85bde6bad11bc8a4 (patch) | |
tree | de06f9f0e12ec8fe963a0bca3835ef0a72dd9191 /mm/swapfile.c | |
parent | 2542e5134d2c19a9e6a4e641ef78cac6bccebd9b (diff) |
sys_swapon: simplify error flow in alloc_swap_info()
Since there is no cleanup to do, there is no reason to jump to a label.
Return directly instead.
Signed-off-by: Cesar Eduardo Barros <cesarb@cesarb.net>
Tested-by: Eric B Munson <emunson@mgebm.net>
Acked-by: Eric B Munson <emunson@mgebm.net>
Reviewed-by: Pekka Enberg <penberg@kernel.org>
Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r-- | mm/swapfile.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c index 4d457d699c1f..4d89c4c9336c 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c | |||
@@ -1848,7 +1848,6 @@ static struct swap_info_struct *alloc_swap_info(void) | |||
1848 | { | 1848 | { |
1849 | struct swap_info_struct *p; | 1849 | struct swap_info_struct *p; |
1850 | unsigned int type; | 1850 | unsigned int type; |
1851 | int error; | ||
1852 | 1851 | ||
1853 | p = kzalloc(sizeof(*p), GFP_KERNEL); | 1852 | p = kzalloc(sizeof(*p), GFP_KERNEL); |
1854 | if (!p) | 1853 | if (!p) |
@@ -1859,11 +1858,10 @@ static struct swap_info_struct *alloc_swap_info(void) | |||
1859 | if (!(swap_info[type]->flags & SWP_USED)) | 1858 | if (!(swap_info[type]->flags & SWP_USED)) |
1860 | break; | 1859 | break; |
1861 | } | 1860 | } |
1862 | error = -EPERM; | ||
1863 | if (type >= MAX_SWAPFILES) { | 1861 | if (type >= MAX_SWAPFILES) { |
1864 | spin_unlock(&swap_lock); | 1862 | spin_unlock(&swap_lock); |
1865 | kfree(p); | 1863 | kfree(p); |
1866 | goto out; | 1864 | return ERR_PTR(-EPERM); |
1867 | } | 1865 | } |
1868 | if (type >= nr_swapfiles) { | 1866 | if (type >= nr_swapfiles) { |
1869 | p->type = type; | 1867 | p->type = type; |
@@ -1889,9 +1887,6 @@ static struct swap_info_struct *alloc_swap_info(void) | |||
1889 | spin_unlock(&swap_lock); | 1887 | spin_unlock(&swap_lock); |
1890 | 1888 | ||
1891 | return p; | 1889 | return p; |
1892 | |||
1893 | out: | ||
1894 | return ERR_PTR(error); | ||
1895 | } | 1890 | } |
1896 | 1891 | ||
1897 | SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) | 1892 | SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) |