diff --git a/[refs] b/[refs] index 705b822ea0a1..86b187d9c402 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4af2bfc1202041006a0f01d0591a975f6c573f09 +refs/heads/master: 5d1854e15ee979f8e27330f0d3ce5e2703afa1dc diff --git a/trunk/mm/swapfile.c b/trunk/mm/swapfile.c index 8e206cea0f5e..f315131db006 100644 --- a/trunk/mm/swapfile.c +++ b/trunk/mm/swapfile.c @@ -1552,6 +1552,11 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags) error = -EINVAL; if (!maxpages) goto bad_swap; + if (swapfilesize && maxpages > swapfilesize) { + printk(KERN_WARNING + "Swap area shorter than signature indicates\n"); + goto bad_swap; + } if (swap_header->info.nr_badpages && S_ISREG(inode->i_mode)) goto bad_swap; if (swap_header->info.nr_badpages > MAX_SWAP_BADPAGES) @@ -1579,12 +1584,6 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags) goto bad_swap; } - if (swapfilesize && maxpages > swapfilesize) { - printk(KERN_WARNING - "Swap area shorter than signature indicates\n"); - error = -EINVAL; - goto bad_swap; - } if (nr_good_pages) { p->swap_map[0] = SWAP_MAP_BAD; p->max = maxpages;