[PATCH] swsusp: fix nr_copy_pages
The following patch moves the recalculation of nr_copy_pages so that the right number is used in the calculation of the size of memory and swap needed. It prevents swsusp from attempting to suspend if there is not enough memory and/or swap (which is unlikely anyway). Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
2e4d5822dc
commit
c61978b303
@ -781,18 +781,18 @@ static int swsusp_alloc(void)
|
||||
{
|
||||
int error;
|
||||
|
||||
pagedir_nosave = NULL;
|
||||
nr_copy_pages = calc_nr(nr_copy_pages);
|
||||
|
||||
pr_debug("suspend: (pages needed: %d + %d free: %d)\n",
|
||||
nr_copy_pages, PAGES_FOR_IO, nr_free_pages());
|
||||
|
||||
pagedir_nosave = NULL;
|
||||
if (!enough_free_mem())
|
||||
return -ENOMEM;
|
||||
|
||||
if (!enough_swap())
|
||||
return -ENOSPC;
|
||||
|
||||
nr_copy_pages = calc_nr(nr_copy_pages);
|
||||
|
||||
if (!(pagedir_save = alloc_pagedir(nr_copy_pages))) {
|
||||
printk(KERN_ERR "suspend: Allocating pagedir failed.\n");
|
||||
return -ENOMEM;
|
||||
|
Loading…
Reference in New Issue
Block a user