diff --git a/[refs] b/[refs] index 699e26c857dc..9791e9b80f3e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 096a7cf44712ab531101bb4689f75f7fcd9b9f18 +refs/heads/master: 6f60b69d8cabbf7c0daf879cae4d09ac0776f4b4 diff --git a/trunk/mm/huge_memory.c b/trunk/mm/huge_memory.c index edfeb8cb23df..d0def42c121b 100644 --- a/trunk/mm/huge_memory.c +++ b/trunk/mm/huge_memory.c @@ -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));