Re: [PATCH] zram: fix partial I/O config check

From: Jianyue Wu

Date: Sun May 31 2026 - 21:38:40 EST


On Mon, Jun 1, 2026 at 8:44 AM Baoquan He <baoquan.he@xxxxxxxxx> wrote:
>
> On 06/01/26 at 08:25am, Jianyue Wu wrote:
> > On Mon, Jun 1, 2026 at 5:38 AM Barry Song <baohua@xxxxxxxxxx> wrote:
> > > > diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
> > > > index 6e1330ce4bc1..72f89fd5572e 100644
> > > > --- a/drivers/block/zram/zram_drv.c
> > > > +++ b/drivers/block/zram/zram_drv.c
> > > > @@ -1510,7 +1510,7 @@ static int read_from_bdev(struct zram *zram, struct page *page, u32 index,
> > > > {
> > > > atomic64_inc(&zram->stats.bd_reads);
> > > > if (!parent) {
> > > > - if (WARN_ON_ONCE(!IS_ENABLED(ZRAM_PARTIAL_IO)))
> > > > + if (WARN_ON_ONCE(!IS_ENABLED(CONFIG_ZRAM_PARTIAL_IO)))
> > >
> > > However, I don't see ZRAM_PARTIAL_IO defined as a Kconfig option.
> >
> > You are right. ZRAM_PARTIAL_IO is a local source-level define, not a
> > Kconfig symbol.
>
>
> How about removing ZRAM_PARTIAL_IO and use PAGE_SIZE to check?
>
> diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
> index 07111455eecf..ca0c29482283 100644
> --- a/drivers/block/zram/zram_drv.c
> +++ b/drivers/block/zram/zram_drv.c
> @@ -221,7 +221,6 @@ static inline bool is_partial_io(struct bio_vec *bvec)
> {
> return bvec->bv_len != PAGE_SIZE;
> }
> -#define ZRAM_PARTIAL_IO 1
> #else
> static inline bool is_partial_io(struct bio_vec *bvec)
> {
> @@ -1507,7 +1506,7 @@ static int read_from_bdev(struct zram *zram, struct page *page, u32 index,
> {
> atomic64_inc(&zram->stats.bd_reads);
> if (!parent) {
> - if (WARN_ON_ONCE(!IS_ENABLED(ZRAM_PARTIAL_IO)))
> + if (WARN_ON_ONCE(PAGE_SIZE == 4096))
> return -EIO;
> return read_from_bdev_sync(zram, page, index, blk_idx);
> }
>

Yes, that looks good. Thanks for the patch.
The synchronous backing-device read is only needed on PAGE_SIZE != 4096
systems, where partial I/O can happen. On 4K systems is_partial_io()
always returns false, so this path should not be hit in normal operation.

Thanks,
Jianyue