zram: fix uninitialized ZRAM not releasing backing device
authorKairui Song <kasong@tencent.com>
Mon, 9 Dec 2024 16:57:16 +0000 (00:57 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 19 Dec 2024 03:04:44 +0000 (19:04 -0800)
commit74363ec674cb172d8856de25776c8f3103f05e2f
tree7a82750f970c7ab660a0aecaa0ce086782b09a10
parentbe48c412f6ebf38849213c19547bc6d5b692b5e5
zram: fix uninitialized ZRAM not releasing backing device

Setting backing device is done before ZRAM initialization.  If we set the
backing device, then remove the ZRAM module without initializing the
device, the backing device reference will be leaked and the device will be
hold forever.

Fix this by always reset the ZRAM fully on rmmod or reset store.

Link: https://lkml.kernel.org/r/20241209165717.94215-3-ryncsn@gmail.com
Fixes: 013bf95a83ec ("zram: add interface to specif backing device")
Signed-off-by: Kairui Song <kasong@tencent.com>
Reported-by: Desheng Wu <deshengwu@tencent.com>
Suggested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/block/zram/zram_drv.c