From 086fa009ccf9d135c247bbe3d7783ffa668d99f4 Mon Sep 17 00:00:00 2001 From: Barry Song Date: Mon, 9 Jan 2012 12:56:23 +0800 Subject: [PATCH] --- yaml --- r: 285839 b: refs/heads/master c: ee34a37049114303011e154478c63b977bcff24c h: refs/heads/master i: 285837: bd0e3a1abf42bdde62d42cacd93a986f76675eb2 285835: 5cbfade22d7e52b8fa7235656baa19207b6c3ef9 285831: c07eb6bf6e304968bd3ff545fc250b161dca6aa8 285823: ecd5eff55d142440f373513630fedffdca62c2b9 v: v3 --- [refs] | 2 +- trunk/kernel/power/swap.c | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 614263f4edc4..5ec379294273 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a029db43986e23677498ab4d84bb61b05de83484 +refs/heads/master: ee34a37049114303011e154478c63b977bcff24c diff --git a/trunk/kernel/power/swap.c b/trunk/kernel/power/swap.c index 3739ecced085..8742fd013a94 100644 --- a/trunk/kernel/power/swap.c +++ b/trunk/kernel/power/swap.c @@ -773,8 +773,7 @@ static int enough_swap(unsigned int nr_pages, unsigned int flags) pr_debug("PM: Free swap pages: %u\n", free_swap); - required = PAGES_FOR_IO + ((flags & SF_NOCOMPRESS_MODE) ? - nr_pages : (nr_pages * LZO_CMP_PAGES) / LZO_UNC_PAGES + 1); + required = PAGES_FOR_IO + nr_pages; return free_swap > required; } @@ -802,10 +801,12 @@ int swsusp_write(unsigned int flags) printk(KERN_ERR "PM: Cannot get swap writer\n"); return error; } - if (!enough_swap(pages, flags)) { - printk(KERN_ERR "PM: Not enough free swap\n"); - error = -ENOSPC; - goto out_finish; + if (flags & SF_NOCOMPRESS_MODE) { + if (!enough_swap(pages, flags)) { + printk(KERN_ERR "PM: Not enough free swap\n"); + error = -ENOSPC; + goto out_finish; + } } memset(&snapshot, 0, sizeof(struct snapshot_handle)); error = snapshot_read_next(&snapshot);