Messages in this thread Patch in this message | | | From | Yue Hu <> | Subject | [PATCH] zram: do not set ZRAM_IDLE bit for idlepage writeback in writeback_store() | Date | Tue, 21 Jan 2020 19:35:57 +0800 |
| |
From: Yue Hu <huyue2@yulong.com>
Currently, we will call zram_set_flag() to set ZRAM_IDLE bit even for idlepage writeback. That is pointless. Let's set it only for hugepage mode.
Signed-off-by: Yue Hu <huyue2@yulong.com> --- drivers/block/zram/zram_drv.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 4285e75..eef5767 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -689,16 +689,18 @@ static ssize_t writeback_store(struct device *dev, if (mode == IDLE_WRITEBACK && !zram_test_flag(zram, index, ZRAM_IDLE)) goto next; - if (mode == HUGE_WRITEBACK && - !zram_test_flag(zram, index, ZRAM_HUGE)) - goto next; + if (mode == HUGE_WRITEBACK) { + if (!zram_test_flag(zram, index, ZRAM_HUGE)) + goto next; + /* Need for hugepage writeback racing */ + zram_set_flag(zram, index, ZRAM_IDLE); + } + /* * Clearing ZRAM_UNDER_WB is duty of caller. * IOW, zram_free_page never clear it. */ zram_set_flag(zram, index, ZRAM_UNDER_WB); - /* Need for hugepage writeback racing */ - zram_set_flag(zram, index, ZRAM_IDLE); zram_slot_unlock(zram, index); if (zram_bvec_read(zram, &bvec, index, 0, NULL)) { zram_slot_lock(zram, index); -- 1.9.1
| |