[PATCH] swsusp: use __GFP_WAIT
authorRafael J. Wysocki <rjw@sisk.pl>
Thu, 7 Dec 2006 04:34:19 +0000 (20:34 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Thu, 7 Dec 2006 16:39:27 +0000 (08:39 -0800)
swsusp uses GFP_ATOMIC, but it can afford to use __GFP_WAIT, which will
permit it to reclaim clean pagecache instead of emitting scary
page-allocation-failure messages.

Cc: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/power/swap.c

index cbd187e9041029229ec320d270a76fad9475d8f3..52e70ca832a88680137789d0c9bc40c8847e22aa 100644 (file)
@@ -63,7 +63,7 @@ static int submit(int rw, pgoff_t page_off, struct page *page,
 {
        struct bio *bio;
 
-       bio = bio_alloc(GFP_ATOMIC, 1);
+       bio = bio_alloc(__GFP_WAIT | __GFP_HIGH, 1);
        if (!bio)
                return -ENOMEM;
        bio->bi_sector = page_off * (PAGE_SIZE >> 9);
@@ -216,7 +216,7 @@ static int write_page(void *buf, sector_t offset, struct bio **bio_chain)
                return -ENOSPC;
 
        if (bio_chain) {
-               src = (void *)__get_free_page(GFP_ATOMIC);
+               src = (void *)__get_free_page(__GFP_WAIT | __GFP_HIGH);
                if (src) {
                        memcpy(src, buf, PAGE_SIZE);
                } else {
@@ -473,7 +473,7 @@ static int get_swap_reader(struct swap_map_handle *handle, sector_t start)
        if (!start)
                return -EINVAL;
 
-       handle->cur = (struct swap_map_page *)get_zeroed_page(GFP_ATOMIC);
+       handle->cur = (struct swap_map_page *)get_zeroed_page(__GFP_WAIT | __GFP_HIGH);
        if (!handle->cur)
                return -ENOMEM;