diff options
-rw-r--r-- | mm/internal.h | 3 | ||||
-rw-r--r-- | mm/mlock.c | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/mm/internal.h b/mm/internal.h index f5f295fe11e1..a4fa284f6bc2 100644 --- a/mm/internal.h +++ b/mm/internal.h | |||
@@ -180,7 +180,8 @@ static inline int mlocked_vma_newpage(struct vm_area_struct *vma, | |||
180 | return 0; | 180 | return 0; |
181 | 181 | ||
182 | if (!TestSetPageMlocked(page)) { | 182 | if (!TestSetPageMlocked(page)) { |
183 | inc_zone_page_state(page, NR_MLOCK); | 183 | mod_zone_page_state(page_zone(page), NR_MLOCK, |
184 | hpage_nr_pages(page)); | ||
184 | count_vm_event(UNEVICTABLE_PGMLOCKED); | 185 | count_vm_event(UNEVICTABLE_PGMLOCKED); |
185 | } | 186 | } |
186 | return 1; | 187 | return 1; |
diff --git a/mm/mlock.c b/mm/mlock.c index de7321592897..f0b9ce572fc7 100644 --- a/mm/mlock.c +++ b/mm/mlock.c | |||
@@ -56,7 +56,8 @@ void clear_page_mlock(struct page *page) | |||
56 | if (!TestClearPageMlocked(page)) | 56 | if (!TestClearPageMlocked(page)) |
57 | return; | 57 | return; |
58 | 58 | ||
59 | dec_zone_page_state(page, NR_MLOCK); | 59 | mod_zone_page_state(page_zone(page), NR_MLOCK, |
60 | -hpage_nr_pages(page)); | ||
60 | count_vm_event(UNEVICTABLE_PGCLEARED); | 61 | count_vm_event(UNEVICTABLE_PGCLEARED); |
61 | if (!isolate_lru_page(page)) { | 62 | if (!isolate_lru_page(page)) { |
62 | putback_lru_page(page); | 63 | putback_lru_page(page); |
@@ -78,7 +79,8 @@ void mlock_vma_page(struct page *page) | |||
78 | BUG_ON(!PageLocked(page)); | 79 | BUG_ON(!PageLocked(page)); |
79 | 80 | ||
80 | if (!TestSetPageMlocked(page)) { | 81 | if (!TestSetPageMlocked(page)) { |
81 | inc_zone_page_state(page, NR_MLOCK); | 82 | mod_zone_page_state(page_zone(page), NR_MLOCK, |
83 | hpage_nr_pages(page)); | ||
82 | count_vm_event(UNEVICTABLE_PGMLOCKED); | 84 | count_vm_event(UNEVICTABLE_PGMLOCKED); |
83 | if (!isolate_lru_page(page)) | 85 | if (!isolate_lru_page(page)) |
84 | putback_lru_page(page); | 86 | putback_lru_page(page); |
@@ -105,7 +107,8 @@ void munlock_vma_page(struct page *page) | |||
105 | BUG_ON(!PageLocked(page)); | 107 | BUG_ON(!PageLocked(page)); |
106 | 108 | ||
107 | if (TestClearPageMlocked(page)) { | 109 | if (TestClearPageMlocked(page)) { |
108 | dec_zone_page_state(page, NR_MLOCK); | 110 | mod_zone_page_state(page_zone(page), NR_MLOCK, |
111 | -hpage_nr_pages(page)); | ||
109 | if (!isolate_lru_page(page)) { | 112 | if (!isolate_lru_page(page)) { |
110 | int ret = SWAP_AGAIN; | 113 | int ret = SWAP_AGAIN; |
111 | 114 | ||