diff options
| -rw-r--r-- | mm/page_alloc.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index fd86c47de86f..bb90971182bd 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5674,7 +5674,7 @@ static int __alloc_contig_migrate_range(struct compact_control *cc,  					unsigned long start, unsigned long end)  {  	/* This function is based on compact_zone() from compaction.c. */ - +	unsigned long nr_reclaimed;  	unsigned long pfn = start;  	unsigned int tries = 0;  	int ret = 0; @@ -5701,7 +5701,9 @@ static int __alloc_contig_migrate_range(struct compact_control *cc,  			break;  		} -		reclaim_clean_pages_from_list(cc->zone, &cc->migratepages); +		nr_reclaimed = reclaim_clean_pages_from_list(cc->zone, +							&cc->migratepages); +		cc->nr_migratepages -= nr_reclaimed;  		ret = migrate_pages(&cc->migratepages,  				    alloc_migrate_target,  | 
