diff -urpN -X /home/fletch/.diff.exclude 520-lockmeter_ia64/mm/slab.c 530-slab_reclaim_accounting/mm/slab.c
--- 520-lockmeter_ia64/mm/slab.c	Wed Dec 24 18:48:27 2003
+++ 530-slab_reclaim_accounting/mm/slab.c	Wed Dec 24 19:13:08 2003
@@ -835,13 +835,13 @@ static inline void *kmem_getpages(kmem_c
 	void *addr;
 
 	flags |= cachep->gfpflags;
-	if (cachep->flags & SLAB_RECLAIM_ACCOUNT)
-		atomic_add(1<<cachep->gfporder, &slab_reclaim_pages);
 	addr = (void*)__get_free_pages(flags, cachep->gfporder);
 	if (addr) {
 		int i = (1 << cachep->gfporder);
 		struct page *page = virt_to_page(addr);
 
+		if (cachep->flags & SLAB_RECLAIM_ACCOUNT)
+			atomic_add(i, &slab_reclaim_pages);
 		while (i--) {
 			SetPageSlab(page);
 			page++;