diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 4b9063d12b932dccb58a1ce6409b8b7b3795fcf2..85cc29c93d93a7d9032e3bc9f2d940db8e8bba0b 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -2092,6 +2092,11 @@ static int zs_page_migrate(struct address_space *mapping, struct page *newpage, zs_pool_dec_isolated(pool); } + if (page_zone(newpage) != page_zone(page)) { + dec_zone_page_state(page, NR_ZSPAGES); + inc_zone_page_state(newpage, NR_ZSPAGES); + } + reset_page(page); put_page(page); page = newpage;