Index: linux-2.6/include/linux/mm.h =================================================================== --- linux-2.6.orig/include/linux/mm.h +++ linux-2.6/include/linux/mm.h @@ -294,6 +294,8 @@ struct page { */ static inline int put_page_testzero(struct page *page) { + if (unlikely(PageCompound(page))) + page = (struct page *)page_private(page); BUG_ON(atomic_read(&page->_count) == 0); return atomic_dec_and_test(&page->_count); }