diff options
author | Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> | 2013-02-22 16:32:09 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-23 17:50:09 -0800 |
commit | 2a6f512412c7aecd04134721ea392cc496e6c017 (patch) | |
tree | c6074d60fcb8f0f8639946ba0598f168626d1542 /mm/page_alloc.c | |
parent | ffb22af5b7a5d6c04eec22253d6d368bc8e6cd3d (diff) | |
download | linux-2a6f512412c7aecd04134721ea392cc496e6c017.tar.gz linux-2a6f512412c7aecd04134721ea392cc496e6c017.tar.bz2 linux-2a6f512412c7aecd04134721ea392cc496e6c017.zip |
CMA: make putback_lru_pages() call conditional
As per documentation and other places calling putback_lru_pages(),
putback_lru_pages() is called on error only. Make the CMA code behave
consistently.
[akpm@linux-foundation.org: remove a test-n-branch in the wrapup code]
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d1107adf174a..804cc62ab72f 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5806,9 +5806,11 @@ static int __alloc_contig_migrate_range(struct compact_control *cc, 0, false, MIGRATE_SYNC, MR_CMA); } - - putback_movable_pages(&cc->migratepages); - return ret > 0 ? 0 : ret; + if (ret < 0) { + putback_movable_pages(&cc->migratepages); + return ret; + } + return 0; } /** |