diff -urpN -X /home/fletch/.diff.exclude 840-proc_pid_readdir/include/linux/gfp.h 850-mbind_part1/include/linux/gfp.h
--- 840-proc_pid_readdir/include/linux/gfp.h	Tue Jun 24 21:29:25 2003
+++ 850-mbind_part1/include/linux/gfp.h	Wed Aug 13 20:51:47 2003
@@ -66,7 +66,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 840-proc_pid_readdir/include/linux/mmzone.h 850-mbind_part1/include/linux/mmzone.h
--- 840-proc_pid_readdir/include/linux/mmzone.h	Wed Aug 13 20:24:32 2003
+++ 850-mbind_part1/include/linux/mmzone.h	Wed Aug 13 20:51:47 2003
@@ -362,6 +362,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 840-proc_pid_readdir/include/linux/pagemap.h 850-mbind_part1/include/linux/pagemap.h
--- 840-proc_pid_readdir/include/linux/pagemap.h	Fri May 30 19:02:23 2003
+++ 850-mbind_part1/include/linux/pagemap.h	Wed Aug 13 20:51:47 2003
@@ -27,14 +27,19 @@
 #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(x->gfp_mask, 0);
+	return __page_cache_alloc(x, x->gfp_mask);
 }
 
 static inline struct page *page_cache_alloc_cold(struct address_space *x)
 {
-	return alloc_pages(x->gfp_mask|__GFP_COLD, 0);
+	return __page_cache_alloc(x, x->gfp_mask|__GFP_COLD);
 }
 
 typedef int filler_t(void *, struct page *);