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>
This commit is contained in:
parent
d527caf22e
commit
9d502c1c8d
1 changed files with 3 additions and 2 deletions
|
@ -494,12 +494,13 @@ static int compact_zone(struct zone *zone, struct compact_control *cc)
|
|||
|
||||
while ((ret = compact_finished(zone, cc)) == COMPACT_CONTINUE) {
|
||||
unsigned long nr_migrate, nr_remaining;
|
||||
int err;
|
||||
|
||||
if (!isolate_migratepages(zone, cc))
|
||||
continue;
|
||||
|
||||
nr_migrate = cc->nr_migratepages;
|
||||
migrate_pages(&cc->migratepages, compaction_alloc,
|
||||
err = migrate_pages(&cc->migratepages, compaction_alloc,
|
||||
(unsigned long)cc, false,
|
||||
cc->sync);
|
||||
update_nr_listpages(cc);
|
||||
|
@ -513,7 +514,7 @@ static int compact_zone(struct zone *zone, struct compact_control *cc)
|
|||
nr_remaining);
|
||||
|
||||
/* Release LRU pages not migrated */
|
||||
if (!list_empty(&cc->migratepages)) {
|
||||
if (err) {
|
||||
putback_lru_pages(&cc->migratepages);
|
||||
cc->nr_migratepages = 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue