diff --git a/[refs] b/[refs] index f834fe6c1cac..6aaacc194c8c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 53951bd57dfe2da58f86cdf276719082d80d8485 +refs/heads/master: bc43f75cd9815833b27831600ccade672edb5e43 diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index cf6873e91c6a..6a4ef0fd0711 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -2458,8 +2458,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, if (mem_cgroup_try_charge_swapin(mm, page, GFP_KERNEL, &ptr)) { ret = VM_FAULT_OOM; - unlock_page(page); - goto out; + goto out_page; } /* @@ -2521,6 +2520,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, out_nomap: mem_cgroup_cancel_charge_swapin(ptr); pte_unmap_unlock(page_table, ptl); +out_page: unlock_page(page); page_cache_release(page); return ret;