aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Liu <lliubbo@gmail.com>2010-10-26 17:22:10 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-26 19:52:11 -0400
commit809c444977adb7313e0612e9e3af4b73ba3f5746 (patch)
tree725f4e352fb34204ec7299bf575251db6f22c942
parentf6a3607e5f30dc642bead8cd95c48d47b6b4bfbb (diff)
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>
-rw-r--r--mm/memory_hotplug.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index bb63b36c4413..e4af144ee409 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -696,15 +696,17 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
696 page_is_file_cache(page)); 696 page_is_file_cache(page));
697 697
698 } else { 698 } else {
699 /* Becasue we don't have big zone->lock. we should
700 check this again here. */
701 if (page_count(page))
702 not_managed++;
703#ifdef CONFIG_DEBUG_VM 699#ifdef CONFIG_DEBUG_VM
704 printk(KERN_ALERT "removing pfn %lx from LRU failed\n", 700 printk(KERN_ALERT "removing pfn %lx from LRU failed\n",
705 pfn); 701 pfn);
706 dump_page(page); 702 dump_page(page);
707#endif 703#endif
704 /* Becasue we don't have big zone->lock. we should
705 check this again here. */
706 if (page_count(page)) {
707 not_managed++;
708 break;
709 }
708 } 710 }
709 } 711 }
710 ret = -EBUSY; 712 ret = -EBUSY;