On Thu, Apr 06, 2023 at 05:23:51PM -0700, Minchan Kim wrote: > rw_page path so that bio comes next to serve the rw_page failure. > In the case, zram will always do chained bio so we are fine with > asynchronous IO. > > diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c > index b8549c61ff2c..23fa0e03cdc1 100644 > --- a/drivers/block/zram/zram_drv.c > +++ b/drivers/block/zram/zram_drv.c > @@ -1264,6 +1264,8 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index, > struct bio_vec bvec; > > zram_slot_unlock(zram, index); > + if (partial_io) > + return -EAGAIN; > > bvec.bv_page = page; > bvec.bv_len = PAGE_SIZE; What tree is this supposed to apply to? 6.2 already has the zram_bvec_read_from_bdev helper. But either way partial_io can be true when called from zram_bvec_write, where we can't just -EAGAIN as ->submit_bio is not allowed to return that except for REQ_NOWAIT bios, and even then it needs to be handle them when submitted without REQ_NOWAIT.