Commit 9d502c1c8d47b337c378c2ac8eaeee7918ad16b1
Committed by
Linus Torvalds
1 parent
d527caf22e
Exists in
master
and in
20 other branches
mm/compaction: check migrate_pages's return value instead of list_empty()
Many migrate_page's caller check return value instead of list_empy by cf608ac19c ("mm: compaction: fix COMPACTPAGEFAILED counting"). This patch makes compaction's migrate_pages consistent with others. This patch should not change old behavior. Signed-off-by: Minchan Kim <minchan.kim@gmail.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Christoph Lameter <cl@linux.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 3 additions and 2 deletions Side-by-side Diff
mm/compaction.c
... | ... | @@ -494,12 +494,13 @@ |
494 | 494 | |
495 | 495 | while ((ret = compact_finished(zone, cc)) == COMPACT_CONTINUE) { |
496 | 496 | unsigned long nr_migrate, nr_remaining; |
497 | + int err; | |
497 | 498 | |
498 | 499 | if (!isolate_migratepages(zone, cc)) |
499 | 500 | continue; |
500 | 501 | |
501 | 502 | nr_migrate = cc->nr_migratepages; |
502 | - migrate_pages(&cc->migratepages, compaction_alloc, | |
503 | + err = migrate_pages(&cc->migratepages, compaction_alloc, | |
503 | 504 | (unsigned long)cc, false, |
504 | 505 | cc->sync); |
505 | 506 | update_nr_listpages(cc); |
... | ... | @@ -513,7 +514,7 @@ |
513 | 514 | nr_remaining); |
514 | 515 | |
515 | 516 | /* Release LRU pages not migrated */ |
516 | - if (!list_empty(&cc->migratepages)) { | |
517 | + if (err) { | |
517 | 518 | putback_lru_pages(&cc->migratepages); |
518 | 519 | cc->nr_migratepages = 0; |
519 | 520 | } |