diff options
-rw-r--r-- | mm/huge_memory.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index edfeb8cb23df..d0def42c121b 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c | |||
@@ -973,8 +973,10 @@ int do_huge_pmd_wp_page(struct mm_struct *mm, struct vm_area_struct *vma, | |||
973 | spin_lock(&mm->page_table_lock); | 973 | spin_lock(&mm->page_table_lock); |
974 | put_page(page); | 974 | put_page(page); |
975 | if (unlikely(!pmd_same(*pmd, orig_pmd))) { | 975 | if (unlikely(!pmd_same(*pmd, orig_pmd))) { |
976 | spin_unlock(&mm->page_table_lock); | ||
976 | mem_cgroup_uncharge_page(new_page); | 977 | mem_cgroup_uncharge_page(new_page); |
977 | put_page(new_page); | 978 | put_page(new_page); |
979 | goto out; | ||
978 | } else { | 980 | } else { |
979 | pmd_t entry; | 981 | pmd_t entry; |
980 | VM_BUG_ON(!PageHead(page)); | 982 | VM_BUG_ON(!PageHead(page)); |