Commit 48f13bf3 authored by Mel Gorman's avatar Mel Gorman Committed by Linus Torvalds

Breakout page_order() to internal.h to avoid special knowledge of the buddy allocator

The statistics patch later needs to know what order a free page is on the free
lists.  Rather than having special knowledge of page_private() when
PageBuddy() is set, this patch places out page_order() in internal.h and adds
a VM_BUG_ON to catch using it on non-PageBuddy pages.
Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
Acked-by: default avatarAndy Whitcroft <apw@shadowen.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ea3061d2
...@@ -37,4 +37,14 @@ static inline void __put_page(struct page *page) ...@@ -37,4 +37,14 @@ static inline void __put_page(struct page *page)
extern void fastcall __init __free_pages_bootmem(struct page *page, extern void fastcall __init __free_pages_bootmem(struct page *page,
unsigned int order); unsigned int order);
/*
* function for dealing with page's order in buddy system.
* zone->lock is already acquired when we use these.
* So, we don't need atomic page->flags operations here.
*/
static inline unsigned long page_order(struct page *page)
{
VM_BUG_ON(!PageBuddy(page));
return page_private(page);
}
#endif #endif
...@@ -313,16 +313,6 @@ static inline void prep_zero_page(struct page *page, int order, gfp_t gfp_flags) ...@@ -313,16 +313,6 @@ static inline void prep_zero_page(struct page *page, int order, gfp_t gfp_flags)
clear_highpage(page + i); clear_highpage(page + i);
} }
/*
* function for dealing with page's order in buddy system.
* zone->lock is already acquired when we use these.
* So, we don't need atomic page->flags operations here.
*/
static inline unsigned long page_order(struct page *page)
{
return page_private(page);
}
static inline void set_page_order(struct page *page, int order) static inline void set_page_order(struct page *page, int order)
{ {
set_page_private(page, order); set_page_private(page, order);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment