aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/swapfile.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 8e206cea0f5e..f315131db006 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -1552,6 +1552,11 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
1552 error = -EINVAL; 1552 error = -EINVAL;
1553 if (!maxpages) 1553 if (!maxpages)
1554 goto bad_swap; 1554 goto bad_swap;
1555 if (swapfilesize && maxpages > swapfilesize) {
1556 printk(KERN_WARNING
1557 "Swap area shorter than signature indicates\n");
1558 goto bad_swap;
1559 }
1555 if (swap_header->info.nr_badpages && S_ISREG(inode->i_mode)) 1560 if (swap_header->info.nr_badpages && S_ISREG(inode->i_mode))
1556 goto bad_swap; 1561 goto bad_swap;
1557 if (swap_header->info.nr_badpages > MAX_SWAP_BADPAGES) 1562 if (swap_header->info.nr_badpages > MAX_SWAP_BADPAGES)
@@ -1579,12 +1584,6 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
1579 goto bad_swap; 1584 goto bad_swap;
1580 } 1585 }
1581 1586
1582 if (swapfilesize && maxpages > swapfilesize) {
1583 printk(KERN_WARNING
1584 "Swap area shorter than signature indicates\n");
1585 error = -EINVAL;
1586 goto bad_swap;
1587 }
1588 if (nr_good_pages) { 1587 if (nr_good_pages) {
1589 p->swap_map[0] = SWAP_MAP_BAD; 1588 p->swap_map[0] = SWAP_MAP_BAD;
1590 p->max = maxpages; 1589 p->max = maxpages;