mm: do_migrate_range: exit loop if not_managed is true
If not_managed is true all pages will be putback to lru, so break the loop earlier to skip other pages isolate. Signed-off-by: Bob Liu <lliubbo@gmail.com> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Acked-by: Wu Fengguang <fengguang.wu@intel.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Mel Gorman <mel@csn.ul.ie> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f6a3607e5f
commit
809c444977
|
@ -696,15 +696,17 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
|
||||||
page_is_file_cache(page));
|
page_is_file_cache(page));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* Becasue we don't have big zone->lock. we should
|
|
||||||
check this again here. */
|
|
||||||
if (page_count(page))
|
|
||||||
not_managed++;
|
|
||||||
#ifdef CONFIG_DEBUG_VM
|
#ifdef CONFIG_DEBUG_VM
|
||||||
printk(KERN_ALERT "removing pfn %lx from LRU failed\n",
|
printk(KERN_ALERT "removing pfn %lx from LRU failed\n",
|
||||||
pfn);
|
pfn);
|
||||||
dump_page(page);
|
dump_page(page);
|
||||||
#endif
|
#endif
|
||||||
|
/* Becasue we don't have big zone->lock. we should
|
||||||
|
check this again here. */
|
||||||
|
if (page_count(page)) {
|
||||||
|
not_managed++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret = -EBUSY;
|
ret = -EBUSY;
|
||||||
|
|
Loading…
Reference in New Issue