diff -purN -X /home/mbligh/.diff.exclude 240-nolock/include/linux/gfp.h 250-mbind_part1/include/linux/gfp.h
--- 240-nolock/include/linux/gfp.h	2003-10-01 11:41:17.000000000 -0700
+++ 250-mbind_part1/include/linux/gfp.h	2003-10-21 11:45:05.000000000 -0700
@@ -69,7 +69,7 @@ static inline struct page * alloc_pages_
 	if (unlikely(order >= MAX_ORDER))
 		return NULL;
 
-	return __alloc_pages(gfp_mask, order, NODE_DATA(nid)->node_zonelists + (gfp_mask & GFP_ZONEMASK));
+	return __alloc_pages(gfp_mask, order, get_node_zonelist(nid, gfp_mask));
 }
 
 #define alloc_pages(gfp_mask, order) \
diff -purN -X /home/mbligh/.diff.exclude 240-nolock/include/linux/mmzone.h 250-mbind_part1/include/linux/mmzone.h
--- 240-nolock/include/linux/mmzone.h	2003-10-14 15:50:34.000000000 -0700
+++ 250-mbind_part1/include/linux/mmzone.h	2003-10-21 11:45:05.000000000 -0700
@@ -379,6 +379,14 @@ static inline unsigned int num_online_me
 #define num_online_memblks()		1
 
 #endif /* CONFIG_DISCONTIGMEM || CONFIG_NUMA */
+
+static inline struct zonelist *get_node_zonelist(int nid, int gfp_mask)
+{
+	return NODE_DATA(nid)->node_zonelists + (gfp_mask & GFP_ZONEMASK);
+}
+
+#define get_zonelist(gfp_mask) get_node_zonelist(numa_node_id(), gfp_mask)
+
 #endif /* !__ASSEMBLY__ */
 #endif /* __KERNEL__ */
 #endif /* _LINUX_MMZONE_H */
diff -purN -X /home/mbligh/.diff.exclude 240-nolock/include/linux/pagemap.h 250-mbind_part1/include/linux/pagemap.h
--- 240-nolock/include/linux/pagemap.h	2003-10-01 11:41:17.000000000 -0700
+++ 250-mbind_part1/include/linux/pagemap.h	2003-10-21 11:45:05.000000000 -0700
@@ -50,14 +50,19 @@ static inline void mapping_set_gfp_mask(
 #define page_cache_release(page)	put_page(page)
 void release_pages(struct page **pages, int nr, int cold);
 
+static inline struct page *__page_cache_alloc(struct address_space *x, int gfp_mask)
+{
+	return alloc_pages(gfp_mask, 0);
+}
+
 static inline struct page *page_cache_alloc(struct address_space *x)
 {
-	return alloc_pages(mapping_gfp_mask(x), 0);
+	return __page_cache_alloc(x, mapping_gfp_mask(x));
 }
 
 static inline struct page *page_cache_alloc_cold(struct address_space *x)
 {
-	return alloc_pages(mapping_gfp_mask(x)|__GFP_COLD, 0);
+	return __page_cache_alloc(x, mapping_gfp_mask(x)|__GFP_COLD);
 }
 
 typedef int filler_t(void *, struct page *);