Hi all, this series cleans up the zram I/O path, and fixes the handling of synchronous I/O to the underlying device in the writeback_store function or for > 4K PAGE_SIZE systems. The fixes are at the end, as I could not fully reason about them being safe before untangling the callchain. This survives xfstests on two zram devices on x86, but I don't actually have a large PAGE_SIZE system to test that path on. Changes since v2: - add a patch to always compile the synchronous reads path - fix a compile error in said path Changes since v1: - fix failed read vs write accounting - minor commit log and comment improvements - cosmetic change to use a break instead of a return in the main switch in zram_submit_bio Diffstat: zram_drv.c | 384 +++++++++++++++++++++---------------------------------------- zram_drv.h | 1 2 files changed, 138 insertions(+), 247 deletions(-)