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)  	/* Leave page->index set: truncation lookup relies upon it */  	/* hugetlb pages do not participate in page cache accounting. */ -	if (!PageHuge(page)) -		__mod_node_page_state(page_pgdat(page), NR_FILE_PAGES, -nr); +	if (PageHuge(page)) +		return; + +	__mod_node_page_state(page_pgdat(page), NR_FILE_PAGES, -nr);  	if (PageSwapBacked(page)) {  		__mod_node_page_state(page_pgdat(page), NR_SHMEM, -nr);  		if (PageTransHuge(page))  			__dec_node_page_state(page, NR_SHMEM_THPS);  	} else { -		VM_BUG_ON_PAGE(PageTransHuge(page) && !PageHuge(page), page); +		VM_BUG_ON_PAGE(PageTransHuge(page), page);  	}  	/*  | 
