mm: compaction: fix return value of capture_free_page()
authorMel Gorman <mgorman@suse.de>
Thu, 29 Nov 2012 21:54:20 +0000 (13:54 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Nov 2012 16:51:17 +0000 (08:51 -0800)
Commit ef6c5be658f6 ("fix incorrect NR_FREE_PAGES accounting (appears
like memory leak)") fixes a NR_FREE_PAGE accounting leak but missed the
return value which was also missed by this reviewer until today.

That return value is used by compaction when adding pages to a list of
isolated free pages and without this follow-up fix, there is a risk of
free list corruption.

Signed-off-by: Mel Gorman <mgorman@suse.de>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/page_alloc.c

index 92871579cbee3b8feb12376df03ad2969f942c48..7e208f0ad68ccb1468b408b5a50a981be8beb3a5 100644 (file)
@@ -1422,7 +1422,7 @@ int capture_free_page(struct page *page, int alloc_order, int migratetype)
                }
        }
 
-       return 1UL << order;
+       return 1UL << alloc_order;
 }
 
 /*