From 68821c841d299aa6a1b7ad62bd8b624232b7d122 Mon Sep 17 00:00:00 2001 From: Shaohua Li Date: Mon, 21 Sep 2009 17:01:18 -0700 Subject: [PATCH] --- yaml --- r: 164369 b: refs/heads/master c: 8e7e40d9658cf7b2ae2b76484e235799b3ddaa97 h: refs/heads/master i: 164367: 9a3da1d4125db5920342a7f40ae1c9cd819396ea v: v3 --- [refs] | 2 +- trunk/mm/page_alloc.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index bfef022ff693..f1d3597c2061 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6fb332fabd7288af9dbe7992394aa6ba97c1a537 +refs/heads/master: 8e7e40d9658cf7b2ae2b76484e235799b3ddaa97 diff --git a/trunk/mm/page_alloc.c b/trunk/mm/page_alloc.c index 8a8302711725..7b4d4e4ea64f 100644 --- a/trunk/mm/page_alloc.c +++ b/trunk/mm/page_alloc.c @@ -4906,13 +4906,16 @@ int set_migratetype_isolate(struct page *page) struct zone *zone; unsigned long flags; int ret = -EBUSY; + int zone_idx; zone = page_zone(page); + zone_idx = zone_idx(zone); spin_lock_irqsave(&zone->lock, flags); /* * In future, more migrate types will be able to be isolation target. */ - if (get_pageblock_migratetype(page) != MIGRATE_MOVABLE) + if (get_pageblock_migratetype(page) != MIGRATE_MOVABLE && + zone_idx != ZONE_MOVABLE) goto out; set_pageblock_migratetype(page, MIGRATE_ISOLATE); move_freepages_block(zone, page, MIGRATE_ISOLATE);