]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - mm/hugetlb.c
hugetlb: fix nr_pmds accounting with shared page tables
[mirror_ubuntu-zesty-kernel.git] / mm / hugetlb.c
index 388c2bb9b55cff8e8b89cac1947bf87ef1c83cd7..ee030216995977d19d687397bcc9f46aea42b3b9 100644 (file)
@@ -4228,7 +4228,6 @@ pte_t *huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud)
                if (saddr) {
                        spte = huge_pte_offset(svma->vm_mm, saddr);
                        if (spte) {
-                               mm_inc_nr_pmds(mm);
                                get_page(virt_to_page(spte));
                                break;
                        }
@@ -4243,9 +4242,9 @@ pte_t *huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud)
        if (pud_none(*pud)) {
                pud_populate(mm, pud,
                                (pmd_t *)((unsigned long)spte & PAGE_MASK));
+               mm_inc_nr_pmds(mm);
        } else {
                put_page(virt_to_page(spte));
-               mm_inc_nr_pmds(mm);
        }
        spin_unlock(ptl);
 out: