drivers/block/zram/zram_drv.c | 1 - 1 file changed, 1 deletion(-)
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().
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
---
drivers/block/zram/zram_drv.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 70ecaee25c20..9f5020b077c5 100644
--- a/drivers/block/zram/zram_drv.c
+++ 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;
}
--
2.48.0.rc2.279.g1de40edade-goog
On Wed, 15 Jan 2025 16:19:16 +0900 Sergey Senozhatsky <senozhatsky@chromium.org> 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.
On (25/01/15 15:28), Andrew Morton 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")
Thanks.
> That way, anyone who backports 485d11509d6d into their earlier kernel
> will have a better chance of noticing that they need this fixup.
Agreed.
© 2016 - 2025 Red Hat, Inc.