Re: [PATCH] zram: remove zcomp_stream_put() from write_incompressible_page()

From: Andrew Morton
Date: Wed Jan 15 2025 - 18:28:46 EST


On Wed, 15 Jan 2025 16:19:16 +0900 Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> wrote:

> We cannot and should not put per-CPU compression stream in
> write_incompressible_page() because that function never gets any
> per-CPU streams in the first place. It's zram_write_page() that
> puts the stream before it calls write_incompressible_page().
>
> ...
>
> +++ b/drivers/block/zram/zram_drv.c
> @@ -1683,7 +1683,6 @@ static int write_incompressible_page(struct zram *zram, struct page *page,
> return PTR_ERR((void *)handle);
>
> if (!zram_can_store_page(zram)) {
> - zcomp_stream_put(zram->comps[ZRAM_PRIMARY_COMP]);
> zs_free(zram->mem_pool, handle);
> return -ENOMEM;
> }

I added

Fixes: 485d11509d6d ("zram: factor out ZRAM_HUGE write")

That way, anyone who backports 485d11509d6d into their earlier kernel
will have a better chance of noticing that they need this fixup.