diff options
Diffstat (limited to 'mm/rmap.c')
-rw-r--r-- | mm/rmap.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -703,8 +703,10 @@ void page_add_new_anon_rmap(struct page *page, | |||
703 | */ | 703 | */ |
704 | void page_add_file_rmap(struct page *page) | 704 | void page_add_file_rmap(struct page *page) |
705 | { | 705 | { |
706 | if (atomic_inc_and_test(&page->_mapcount)) | 706 | if (atomic_inc_and_test(&page->_mapcount)) { |
707 | __inc_zone_page_state(page, NR_FILE_MAPPED); | 707 | __inc_zone_page_state(page, NR_FILE_MAPPED); |
708 | mem_cgroup_update_mapped_file_stat(page, 1); | ||
709 | } | ||
708 | } | 710 | } |
709 | 711 | ||
710 | #ifdef CONFIG_DEBUG_VM | 712 | #ifdef CONFIG_DEBUG_VM |
@@ -753,6 +755,7 @@ void page_remove_rmap(struct page *page) | |||
753 | mem_cgroup_uncharge_page(page); | 755 | mem_cgroup_uncharge_page(page); |
754 | __dec_zone_page_state(page, | 756 | __dec_zone_page_state(page, |
755 | PageAnon(page) ? NR_ANON_PAGES : NR_FILE_MAPPED); | 757 | PageAnon(page) ? NR_ANON_PAGES : NR_FILE_MAPPED); |
758 | mem_cgroup_update_mapped_file_stat(page, -1); | ||
756 | /* | 759 | /* |
757 | * It would be tidy to reset the PageAnon mapping here, | 760 | * It would be tidy to reset the PageAnon mapping here, |
758 | * but that might overwrite a racing page_add_anon_rmap | 761 | * but that might overwrite a racing page_add_anon_rmap |