Eliminate free_area_t bitmap patches. p01 is for include files. --- linux-2.6.8.1-kame-kamezawa/include/linux/mm.h | 16 ++++++++++++++-- linux-2.6.8.1-kame-kamezawa/include/linux/mmzone.h | 1 - 2 files changed, 14 insertions(+), 3 deletions(-) diff -puN include/linux/mmzone.h~eliminate-bitmap-p01 include/linux/mmzone.h --- linux-2.6.8.1-kame/include/linux/mmzone.h~eliminate-bitmap-p01 2004-08-19 13:16:05.000000000 +0900 +++ linux-2.6.8.1-kame-kamezawa/include/linux/mmzone.h 2004-08-19 13:34:34.000000000 +0900 @@ -34,7 +34,6 @@ struct free_area { struct list_head free_list; - unsigned long *map; }; struct pglist_data; diff -puN include/linux/mm.h~eliminate-bitmap-p01 include/linux/mm.h --- linux-2.6.8.1-kame/include/linux/mm.h~eliminate-bitmap-p01 2004-08-19 13:22:24.000000000 +0900 +++ linux-2.6.8.1-kame-kamezawa/include/linux/mm.h 2004-08-21 08:52:59.137598728 +0900 @@ -203,8 +203,9 @@ struct page { unsigned long private; /* Mapping-private opaque data: * usually used for buffer_heads * if PagePrivate set; used for - * swp_entry_t if PageSwapCache - */ + * swp_entry_t if PageSwapCache. + * when page is free, this field + * keeps order of page. */ struct address_space *mapping; /* If PG_anon clear, points to * inode address_space, or NULL. * If page mapped as anonymous @@ -313,9 +314,20 @@ static inline void put_page(struct page __page_cache_release(page); } + + + #endif /* CONFIG_HUGETLB_PAGE */ /* + * indicates page's order in freelist + * order is recorded in inveterd manner. + */ +#define page_order(page) (~((page)->private)) +#define set_page_order(page,order) ((page)->private = ~order) +#define invalidate_page_order(page) ((page)->private = 0) + +/* * Multiple processes may "see" the same page. E.g. for untouched * mappings of /dev/null, all processes see the same page full of * zeroes, and text pages of executables and shared libraries have _