|
@@ -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);
|
|
spin_lock(&mm->page_table_lock);
|
|
put_page(page);
|
|
put_page(page);
|
|
if (unlikely(!pmd_same(*pmd, orig_pmd))) {
|
|
if (unlikely(!pmd_same(*pmd, orig_pmd))) {
|
|
|
|
+ spin_unlock(&mm->page_table_lock);
|
|
mem_cgroup_uncharge_page(new_page);
|
|
mem_cgroup_uncharge_page(new_page);
|
|
put_page(new_page);
|
|
put_page(new_page);
|
|
|
|
+ goto out;
|
|
} else {
|
|
} else {
|
|
pmd_t entry;
|
|
pmd_t entry;
|
|
VM_BUG_ON(!PageHead(page));
|
|
VM_BUG_ON(!PageHead(page));
|