summaryrefslogtreecommitdiff
path: root/mm/swapfile.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-02-03 07:55:27 (GMT)
committerDavid S. Miller <davem@davemloft.net>2009-02-03 07:55:27 (GMT)
commitfb53fde9762432d091dac209bdf4f3f850117c55 (patch)
tree607b09022b206a539cb4a924e4ef476443798252 /mm/swapfile.c
parenteb4400e3a040b90a3ad805b01fcbc99a5f615c8f (diff)
parentb1792e367053968f2ddb48bc911d314143ce6242 (diff)
downloadlinux-fsl-qoriq-fb53fde9762432d091dac209bdf4f3f850117c55.tar.xz
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r--mm/swapfile.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c
index f48b831..7e6304d 100644
--- a/mm/swapfile.c
+++ b/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;
}