OSDN Git Service

erofs: release ztailpacking pclusters properly
authorJingbo Xu <jefflexu@linux.alibaba.com>
Tue, 22 Aug 2023 11:05:30 +0000 (19:05 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Wed, 23 Aug 2023 15:57:03 +0000 (23:57 +0800)
commit91b1ad0815fbb1095c8b9e8a2bf4201186afe304
tree43379ef715b57697e266f7dd2a084da78387fcaf
parent5ec693ca70dd88db20094cab9aa045852363b93f
erofs: release ztailpacking pclusters properly

Currently ztailpacking pclusters are chained with FOLLOWED_NOINPLACE and
not recorded into the managed_pslots XArray.

After commit 7674a42f35ea ("erofs: use struct lockref to replace
handcrafted approach"), ztailpacking pclusters won't be freed with
erofs_workgroup_put() anymore, which will cause the following issue:

BUG erofs_pcluster-1 (Tainted: G           OE     ): Objects remaining in erofs_pcluster-1 on __kmem_cache_shutdown()

Use z_erofs_free_pcluster() directly to free ztailpacking pclusters.

Fixes: 7674a42f35ea ("erofs: use struct lockref to replace handcrafted approach")
Signed-off-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20230822110530.96831-1-jefflexu@linux.alibaba.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/zdata.c