From 730c0581c82dbc5be2f41a2d85bde6bad11bc8a4 Mon Sep 17 00:00:00 2001 From: Cesar Eduardo Barros Date: Tue, 22 Mar 2011 16:33:19 -0700 Subject: 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 Tested-by: Eric B Munson Acked-by: Eric B Munson Reviewed-by: Pekka Enberg Reviewed-by: KAMEZAWA Hiroyuki Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds diff --git a/mm/swapfile.c b/mm/swapfile.c index 4d457d6..4d89c4c 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1848,7 +1848,6 @@ static struct swap_info_struct *alloc_swap_info(void) { struct swap_info_struct *p; unsigned int type; - int error; p = kzalloc(sizeof(*p), GFP_KERNEL); if (!p) @@ -1859,11 +1858,10 @@ static struct swap_info_struct *alloc_swap_info(void) if (!(swap_info[type]->flags & SWP_USED)) break; } - error = -EPERM; if (type >= MAX_SWAPFILES) { spin_unlock(&swap_lock); kfree(p); - goto out; + return ERR_PTR(-EPERM); } if (type >= nr_swapfiles) { p->type = type; @@ -1889,9 +1887,6 @@ static struct swap_info_struct *alloc_swap_info(void) spin_unlock(&swap_lock); return p; - -out: - return ERR_PTR(error); } SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) -- cgit v0.10.2