diff options
Diffstat (limited to 'mm/filemap.c')
-rw-r--r-- | mm/filemap.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 3247b4208034..a49702445ce0 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -239,14 +239,16 @@ void __delete_from_page_cache(struct page *page, void *shadow) | |||
239 | /* Leave page->index set: truncation lookup relies upon it */ | 239 | /* Leave page->index set: truncation lookup relies upon it */ |
240 | 240 | ||
241 | /* hugetlb pages do not participate in page cache accounting. */ | 241 | /* hugetlb pages do not participate in page cache accounting. */ |
242 | if (!PageHuge(page)) | 242 | if (PageHuge(page)) |
243 | __mod_node_page_state(page_pgdat(page), NR_FILE_PAGES, -nr); | 243 | return; |
244 | |||
245 | __mod_node_page_state(page_pgdat(page), NR_FILE_PAGES, -nr); | ||
244 | if (PageSwapBacked(page)) { | 246 | if (PageSwapBacked(page)) { |
245 | __mod_node_page_state(page_pgdat(page), NR_SHMEM, -nr); | 247 | __mod_node_page_state(page_pgdat(page), NR_SHMEM, -nr); |
246 | if (PageTransHuge(page)) | 248 | if (PageTransHuge(page)) |
247 | __dec_node_page_state(page, NR_SHMEM_THPS); | 249 | __dec_node_page_state(page, NR_SHMEM_THPS); |
248 | } else { | 250 | } else { |
249 | VM_BUG_ON_PAGE(PageTransHuge(page) && !PageHuge(page), page); | 251 | VM_BUG_ON_PAGE(PageTransHuge(page), page); |
250 | } | 252 | } |
251 | 253 | ||
252 | /* | 254 | /* |