mm: trivial cleanups in vmscan.c
[firefly-linux-kernel-4.4.55.git] / mm / huge_memory.c
index edfeb8cb23df27ad77716408962687ceed4ba342..d0def42c121bb570315d084b75d38083f53597c3 100644 (file)
@@ -973,8 +973,10 @@ int do_huge_pmd_wp_page(struct mm_struct *mm, struct vm_area_struct *vma,
        spin_lock(&mm->page_table_lock);
        put_page(page);
        if (unlikely(!pmd_same(*pmd, orig_pmd))) {
+               spin_unlock(&mm->page_table_lock);
                mem_cgroup_uncharge_page(new_page);
                put_page(new_page);
+               goto out;
        } else {
                pmd_t entry;
                VM_BUG_ON(!PageHead(page));