diff -urpN -X /home/fletch/.diff.exclude 350-autoswap/include/linux/gfp.h 360-mbind_part1/include/linux/gfp.h
--- 350-autoswap/include/linux/gfp.h	Wed Dec 24 18:37:42 2003
+++ 360-mbind_part1/include/linux/gfp.h	Wed Dec 24 18:40:47 2003
@@ -70,7 +70,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 -urpN -X /home/fletch/.diff.exclude 350-autoswap/include/linux/mmzone.h 360-mbind_part1/include/linux/mmzone.h
--- 350-autoswap/include/linux/mmzone.h	Wed Dec 24 18:37:12 2003
+++ 360-mbind_part1/include/linux/mmzone.h	Wed Dec 24 18:40:47 2003
@@ -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 -urpN -X /home/fletch/.diff.exclude 350-autoswap/include/linux/pagemap.h 360-mbind_part1/include/linux/pagemap.h
--- 350-autoswap/include/linux/pagemap.h	Tue Sep  2 09:55:55 2003
+++ 360-mbind_part1/include/linux/pagemap.h	Wed Dec 24 18:40:47 2003
@@ -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 *);