diff options
author | Bob Liu <lliubbo@gmail.com> | 2010-10-26 17:22:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 19:52:11 -0400 |
commit | 809c444977adb7313e0612e9e3af4b73ba3f5746 (patch) | |
tree | 725f4e352fb34204ec7299bf575251db6f22c942 /mm | |
parent | f6a3607e5f30dc642bead8cd95c48d47b6b4bfbb (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>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/memory_hotplug.c | 10 |
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; |