mm: Make compound_pincount always available
[linux-2.6-block.git] / mm / hugetlb.c
index 61895cc01d0980a7e657bf32471ac5462b334076..785d6e34029221fa199c36d34dfb2feaa0dc1bb1 100644 (file)
@@ -1320,7 +1320,9 @@ static void __destroy_compound_gigantic_page(struct page *page,
        }
 
        set_compound_order(page, 0);
+#ifdef CONFIG_64BIT
        page[1].compound_nr = 0;
+#endif
        __ClearPageHead(page);
 }
 
@@ -1812,7 +1814,9 @@ out_error:
        for (; j < nr_pages; j++, p = mem_map_next(p, page, j))
                __ClearPageReserved(p);
        set_compound_order(page, 0);
+#ifdef CONFIG_64BIT
        page[1].compound_nr = 0;
+#endif
        __ClearPageHead(page);
        return false;
 }
@@ -5014,7 +5018,7 @@ static void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct
                        set_page_dirty(page);
 
                hugetlb_count_sub(pages_per_huge_page(h), mm);
-               page_remove_rmap(page, true);
+               page_remove_rmap(page, vma, true);
 
                spin_unlock(ptl);
                tlb_remove_page_size(tlb, page, huge_page_size(h));
@@ -5259,7 +5263,7 @@ retry_avoidcopy:
                /* Break COW */
                huge_ptep_clear_flush(vma, haddr, ptep);
                mmu_notifier_invalidate_range(mm, range.start, range.end);
-               page_remove_rmap(old_page, true);
+               page_remove_rmap(old_page, vma, true);
                hugepage_add_new_anon_rmap(new_page, vma, haddr);
                set_huge_pte_at(mm, haddr, ptep,
                                make_huge_pte(vma, new_page, 1));