From 816abfa050bf742c104026b172f4b804b9473472 Mon Sep 17 00:00:00 2001 From: KAMEZAWA Hiroyuki Date: Thu, 29 Jan 2009 14:25:13 -0800 Subject: [PATCH] --- yaml --- r: 130383 b: refs/heads/master c: 85d9fc89fb0f0703df6444f260187c088a8d59ff h: refs/heads/master i: 130381: 61288ea760c9b37bee6da2921de2d41aba0e4027 130379: f558685afabcc4d24aef8ee4239cef284249027d 130375: 9e041a2ed7319556ba88d8b294c2ba1827185a0a 130367: 24560e5881e33a218d5df44f92d90b8711460cbc v: v3 --- [refs] | 2 +- trunk/mm/swapfile.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 36c4b52180da..90484299f715 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7460db567bbca76bf087d1694d792a1a96bdaa26 +refs/heads/master: 85d9fc89fb0f0703df6444f260187c088a8d59ff diff --git a/trunk/mm/swapfile.c b/trunk/mm/swapfile.c index f48b831e5e5c..7e6304dfafab 100644 --- a/trunk/mm/swapfile.c +++ b/trunk/mm/swapfile.c @@ -698,8 +698,10 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, pte_t *pte; int ret = 1; - if (mem_cgroup_try_charge_swapin(vma->vm_mm, page, GFP_KERNEL, &ptr)) + if (mem_cgroup_try_charge_swapin(vma->vm_mm, page, GFP_KERNEL, &ptr)) { ret = -ENOMEM; + goto out_nolock; + } pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); if (unlikely(!pte_same(*pte, swp_entry_to_pte(entry)))) { @@ -723,6 +725,7 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, activate_page(page); out: pte_unmap_unlock(pte, ptl); +out_nolock: return ret; }