UPSTREAM: zram: count same page write as page_stored
authorMinchan Kim <minchan@kernel.org>
Thu, 6 Jul 2017 22:37:12 +0000 (15:37 -0700)
committerivanmeler <i_ivan@windowslive.com>
Wed, 13 Apr 2022 21:13:22 +0000 (21:13 +0000)
Regardless of whether it is same page or not, it's surely write and
stored to zram so we should increase pages_stored stat.  Otherwise, user
can see zero value via mm_stats although he writes a lot of pages to
zram.

Link: http://lkml.kernel.org/r/1494834068-27004-1-git-send-email-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 51f9f82c855d65ef14c2af10e0d2c86ec332a182)
Signed-off-by: Peter Kalauskas <peskal@google.com>
Bug: 112488418
Change-Id: I006d80df413a0fe0fd7dd58e535c6a2c03ab2c9d

drivers/block/zram/zram_drv.c

index 2db2459857fbbbc3ce7218ee11d5c64b4d6515c5..ac9b1cacb970a634c76fafa77b31ba8abe0e2df1 100644 (file)
@@ -468,6 +468,7 @@ static bool zram_same_page_write(struct zram *zram, u32 index,
                zram_slot_unlock(zram, index);
 
                atomic64_inc(&zram->stats.same_pages);
+               atomic64_inc(&zram->stats.pages_stored);
                return true;
        }
        kunmap_atomic(mem);
@@ -523,6 +524,7 @@ static void zram_free_page(struct zram *zram, size_t index)
                zram_clear_flag(zram, index, ZRAM_SAME);
                zram_set_element(zram, index, 0);
                atomic64_dec(&zram->stats.same_pages);
+               atomic64_dec(&zram->stats.pages_stored);
                return;
        }