return PTR_ERR(p);
name = getname(specialfile);
- error = PTR_ERR(name);
if (IS_ERR(name)) {
+ error = PTR_ERR(name);
name = NULL;
goto bad_swap_2;
}
swap_file = filp_open(name, O_RDWR|O_LARGEFILE, 0);
- error = PTR_ERR(swap_file);
if (IS_ERR(swap_file)) {
+ error = PTR_ERR(swap_file);
swap_file = NULL;
goto bad_swap_2;
}
mapping = swap_file->f_mapping;
inode = mapping->host;
- error = -EBUSY;
for (i = 0; i < nr_swapfiles; i++) {
struct swap_info_struct *q = swap_info[i];
if (q == p || !q->swap_file)
continue;
- if (mapping == q->swap_file->f_mapping)
+ if (mapping == q->swap_file->f_mapping) {
+ error = -EBUSY;
goto bad_swap;
+ }
}
- error = -EINVAL;
if (S_ISBLK(inode->i_mode)) {
bdev = bdgrab(I_BDEV(inode));
error = blkdev_get(bdev, FMODE_READ | FMODE_WRITE | FMODE_EXCL,
goto bad_swap;
}
} else {
+ error = -EINVAL;
goto bad_swap;
}