|
@@ -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 @@ out:
|
|
|
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;
|