diff --git a/[refs] b/[refs] index fc382befbcaa..f34ff3089e85 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e43c3afb367112a5b357f9adfac7817255129c88 +refs/heads/master: 4779cb31c0ee3b355116745edca3f3e5fe865553 diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index 7e91b5f9f690..7a3b0ad5594a 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -2539,7 +2539,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, } else if (PageHWPoison(page)) { ret = VM_FAULT_HWPOISON; delayacct_clear_flag(DELAYACCT_PF_SWAPIN); - goto out; + goto out_release; } lock_page(page); @@ -2611,6 +2611,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, pte_unmap_unlock(page_table, ptl); out_page: unlock_page(page); +out_release: page_cache_release(page); return ret; }