diff options
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r-- | mm/swapfile.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c index da422c47e2ee..7e6304dfafab 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, | |||
698 | pte_t *pte; | 698 | pte_t *pte; |
699 | int ret = 1; | 699 | int ret = 1; |
700 | 700 | ||
701 | if (mem_cgroup_try_charge_swapin(vma->vm_mm, page, GFP_KERNEL, &ptr)) | 701 | if (mem_cgroup_try_charge_swapin(vma->vm_mm, page, GFP_KERNEL, &ptr)) { |
702 | ret = -ENOMEM; | 702 | ret = -ENOMEM; |
703 | goto out_nolock; | ||
704 | } | ||
703 | 705 | ||
704 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); | 706 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); |
705 | if (unlikely(!pte_same(*pte, swp_entry_to_pte(entry)))) { | 707 | 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, | |||
723 | activate_page(page); | 725 | activate_page(page); |
724 | out: | 726 | out: |
725 | pte_unmap_unlock(pte, ptl); | 727 | pte_unmap_unlock(pte, ptl); |
728 | out_nolock: | ||
726 | return ret; | 729 | return ret; |
727 | } | 730 | } |
728 | 731 | ||
@@ -1377,7 +1380,7 @@ out: | |||
1377 | return ret; | 1380 | return ret; |
1378 | } | 1381 | } |
1379 | 1382 | ||
1380 | asmlinkage long sys_swapoff(const char __user * specialfile) | 1383 | SYSCALL_DEFINE1(swapoff, const char __user *, specialfile) |
1381 | { | 1384 | { |
1382 | struct swap_info_struct * p = NULL; | 1385 | struct swap_info_struct * p = NULL; |
1383 | unsigned short *swap_map; | 1386 | unsigned short *swap_map; |
@@ -1633,7 +1636,7 @@ late_initcall(max_swapfiles_check); | |||
1633 | * | 1636 | * |
1634 | * The swapon system call | 1637 | * The swapon system call |
1635 | */ | 1638 | */ |
1636 | asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags) | 1639 | SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) |
1637 | { | 1640 | { |
1638 | struct swap_info_struct * p; | 1641 | struct swap_info_struct * p; |
1639 | char *name = NULL; | 1642 | char *name = NULL; |