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) { 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)