diff options
author | Paul Szabo <psz@maths.usyd.edu.au> | 2013-02-22 16:34:42 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-23 17:50:17 -0800 |
commit | 75f7ad8e043d9383337d917584297f7737154bbf (patch) | |
tree | 101f5f2373b615bf83838cd13615fd123dfd765c /mm/page-writeback.c | |
parent | 08b52706d505658eac0962d215ff697f898bbc13 (diff) | |
download | linux-75f7ad8e043d9383337d917584297f7737154bbf.tar.gz linux-75f7ad8e043d9383337d917584297f7737154bbf.tar.bz2 linux-75f7ad8e043d9383337d917584297f7737154bbf.zip |
page-writeback.c: subtract min_free_kbytes from dirtyable memory
When calculating amount of dirtyable memory, min_free_kbytes should be
subtracted because it is not intended for dirty pages.
Addresses http://bugs.debian.org/695182
[akpm@linux-foundation.org: fix up min_free_kbytes extern declarations]
[akpm@linux-foundation.org: fix min() warning]
Signed-off-by: Paul Szabo <psz@maths.usyd.edu.au>
Acked-by: Rik van Riel <riel@redhat.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r-- | mm/page-writeback.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 7300c9d5e1d9..cdc377c456c0 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -241,6 +241,9 @@ static unsigned long global_dirtyable_memory(void) if (!vm_highmem_is_dirtyable) x -= highmem_dirtyable_memory(x); + /* Subtract min_free_kbytes */ + x -= min_t(unsigned long, x, min_free_kbytes >> (PAGE_SHIFT - 10)); + return x + 1; /* Ensure that we never return 0 */ } |