--- swapfile.c.0 Mon Feb 7 19:12:58 2000 +++ swapfile.c Mon Feb 7 19:13:02 2000 @@ -445,12 +445,12 @@ struct swap_info_struct * p = NULL; struct dentry * dentry; int i, type, prev; - int err = -EPERM; + int err; - lock_kernel(); if (!capable(CAP_SYS_ADMIN)) - goto out; + return -EPERM; + lock_kernel(); dentry = namei(specialfile); err = PTR_ERR(dentry); if (IS_ERR(dentry)) @@ -587,7 +587,7 @@ struct dentry * swap_dentry; unsigned int type; int i, j, prev; - int error = -EPERM; + int error; static int least_priority = 0; union swap_header *swap_header = 0; int swap_header_version; @@ -596,15 +596,17 @@ int swapfilesize; struct block_device *bdev = NULL; - lock_kernel(); if (!capable(CAP_SYS_ADMIN)) - goto out; + return -EPERM; + lock_kernel(); p = swap_info; for (type = 0 ; type < nr_swapfiles ; type++,p++) if (!(p->flags & SWP_USED)) break; - if (type >= MAX_SWAPFILES) + if (type >= MAX_SWAPFILES) { + error = -EPERM; goto out; + } if (type >= nr_swapfiles) nr_swapfiles = type+1; p->flags = SWP_USED; .