diff options
Diffstat (limited to 'mm/vmscan.c')
| -rw-r--r-- | mm/vmscan.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index 9727dd8e2581..466fc3144fff 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -4268,8 +4268,14 @@ void check_move_unevictable_pages(struct pagevec *pvec)  	for (i = 0; i < pvec->nr; i++) {  		struct page *page = pvec->pages[i];  		struct pglist_data *pagepgdat = page_pgdat(page); +		int nr_pages; + +		if (PageTransTail(page)) +			continue; + +		nr_pages = thp_nr_pages(page); +		pgscanned += nr_pages; -		pgscanned++;  		if (pagepgdat != pgdat) {  			if (pgdat)  				spin_unlock_irq(&pgdat->lru_lock); @@ -4288,7 +4294,7 @@ void check_move_unevictable_pages(struct pagevec *pvec)  			ClearPageUnevictable(page);  			del_page_from_lru_list(page, lruvec, LRU_UNEVICTABLE);  			add_page_to_lru_list(page, lruvec, lru); -			pgrescued++; +			pgrescued += nr_pages;  		}  	}  |