diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 2d7611cf276a5cfd8230fd5d88f339648e751eb7..f127940ec24fc8c52e6492de4e5729ce330c487b 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -208,7 +208,7 @@ static void update_and_free_page(struct page *page)
 				1 << PG_dirty | 1 << PG_active | 1 << PG_reserved |
 				1 << PG_private | 1<< PG_writeback);
 	}
-	page[1].lru.next = NULL;
+	set_compound_page_dtor(page, NULL);
 	set_page_refcounted(page);
 	__free_pages(page, HUGETLB_PAGE_ORDER);
 }