diff options
Diffstat (limited to 'mm/rmap.c')
-rw-r--r-- | mm/rmap.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -586,7 +586,7 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma) | |||
586 | dec_mm_counter(mm, anon_rss); | 586 | dec_mm_counter(mm, anon_rss); |
587 | } | 587 | } |
588 | 588 | ||
589 | inc_mm_counter(mm, rss); | 589 | dec_mm_counter(mm, rss); |
590 | page_remove_rmap(page); | 590 | page_remove_rmap(page); |
591 | page_cache_release(page); | 591 | page_cache_release(page); |
592 | 592 | ||
@@ -626,7 +626,7 @@ static void try_to_unmap_cluster(unsigned long cursor, | |||
626 | pgd_t *pgd; | 626 | pgd_t *pgd; |
627 | pud_t *pud; | 627 | pud_t *pud; |
628 | pmd_t *pmd; | 628 | pmd_t *pmd; |
629 | pte_t *pte; | 629 | pte_t *pte, *original_pte; |
630 | pte_t pteval; | 630 | pte_t pteval; |
631 | struct page *page; | 631 | struct page *page; |
632 | unsigned long address; | 632 | unsigned long address; |
@@ -658,7 +658,7 @@ static void try_to_unmap_cluster(unsigned long cursor, | |||
658 | if (!pmd_present(*pmd)) | 658 | if (!pmd_present(*pmd)) |
659 | goto out_unlock; | 659 | goto out_unlock; |
660 | 660 | ||
661 | for (pte = pte_offset_map(pmd, address); | 661 | for (original_pte = pte = pte_offset_map(pmd, address); |
662 | address < end; pte++, address += PAGE_SIZE) { | 662 | address < end; pte++, address += PAGE_SIZE) { |
663 | 663 | ||
664 | if (!pte_present(*pte)) | 664 | if (!pte_present(*pte)) |
@@ -694,7 +694,7 @@ static void try_to_unmap_cluster(unsigned long cursor, | |||
694 | (*mapcount)--; | 694 | (*mapcount)--; |
695 | } | 695 | } |
696 | 696 | ||
697 | pte_unmap(pte); | 697 | pte_unmap(original_pte); |
698 | out_unlock: | 698 | out_unlock: |
699 | spin_unlock(&mm->page_table_lock); | 699 | spin_unlock(&mm->page_table_lock); |
700 | } | 700 | } |