[patch 14/14] mm: page_alloc cleanups

From: Nick Piggin
Date: Sun Nov 06 2005 - 03:26:17 EST


14/14

--
SUSE Labs, Novell Inc.

Index: linux-2.6/mm/page_alloc.c
===================================================================
--- linux-2.6.orig/mm/page_alloc.c
+++ linux-2.6/mm/page_alloc.c
@@ -431,8 +431,7 @@ void __free_pages_ok(struct page *page,
*
* -- wli
*/
-static inline struct page *
-expand(struct zone *zone, struct page *page,
+static inline void expand(struct zone *zone, struct page *page,
int low, int high, struct free_area *area)
{
unsigned long size = 1 << high;
@@ -446,7 +445,6 @@ expand(struct zone *zone, struct page *p
area->nr_free++;
set_page_order(&page[size], high);
}
- return page;
}

/*
@@ -498,7 +496,8 @@ static struct page *__rmqueue(struct zon
rmv_page_order(page);
area->nr_free--;
zone->free_pages -= 1UL << order;
- return expand(zone, page, order, current_order, area);
+ expand(zone, page, order, current_order, area);
+ return page;
}

return NULL;
@@ -513,19 +512,16 @@ static int rmqueue_bulk(struct zone *zon
unsigned long count, struct list_head *list)
{
int i;
- int allocated = 0;
- struct page *page;

spin_lock(&zone->lock);
for (i = 0; i < count; ++i) {
- page = __rmqueue(zone, order);
- if (page == NULL)
+ struct page *page = __rmqueue(zone, order);
+ if (unlikely(page == NULL))
break;
- allocated++;
list_add_tail(&page->lru, list);
}
spin_unlock(&zone->lock);
- return allocated;
+ return i;
}

#ifdef CONFIG_NUMA