diff options
Diffstat (limited to 'mm/hugetlb.c')
-rw-r--r-- | mm/hugetlb.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 06058eaa173b..19d0d08b396f 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -3346,7 +3346,7 @@ retry_avoidcopy: | |||
3346 | old_page != pagecache_page) | 3346 | old_page != pagecache_page) |
3347 | outside_reserve = 1; | 3347 | outside_reserve = 1; |
3348 | 3348 | ||
3349 | page_cache_get(old_page); | 3349 | get_page(old_page); |
3350 | 3350 | ||
3351 | /* | 3351 | /* |
3352 | * Drop page table lock as buddy allocator may be called. It will | 3352 | * Drop page table lock as buddy allocator may be called. It will |
@@ -3364,7 +3364,7 @@ retry_avoidcopy: | |||
3364 | * may get SIGKILLed if it later faults. | 3364 | * may get SIGKILLed if it later faults. |
3365 | */ | 3365 | */ |
3366 | if (outside_reserve) { | 3366 | if (outside_reserve) { |
3367 | page_cache_release(old_page); | 3367 | put_page(old_page); |
3368 | BUG_ON(huge_pte_none(pte)); | 3368 | BUG_ON(huge_pte_none(pte)); |
3369 | unmap_ref_private(mm, vma, old_page, address); | 3369 | unmap_ref_private(mm, vma, old_page, address); |
3370 | BUG_ON(huge_pte_none(pte)); | 3370 | BUG_ON(huge_pte_none(pte)); |
@@ -3425,9 +3425,9 @@ retry_avoidcopy: | |||
3425 | spin_unlock(ptl); | 3425 | spin_unlock(ptl); |
3426 | mmu_notifier_invalidate_range_end(mm, mmun_start, mmun_end); | 3426 | mmu_notifier_invalidate_range_end(mm, mmun_start, mmun_end); |
3427 | out_release_all: | 3427 | out_release_all: |
3428 | page_cache_release(new_page); | 3428 | put_page(new_page); |
3429 | out_release_old: | 3429 | out_release_old: |
3430 | page_cache_release(old_page); | 3430 | put_page(old_page); |
3431 | 3431 | ||
3432 | spin_lock(ptl); /* Caller expects lock to be held */ | 3432 | spin_lock(ptl); /* Caller expects lock to be held */ |
3433 | return ret; | 3433 | return ret; |