]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
erofs: use kill_anon_super() to kill super in fscache mode
authorJia Zhu <zhujia.zj@bytedance.com>
Sun, 18 Sep 2022 04:34:51 +0000 (12:34 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Oct 2022 07:57:02 +0000 (09:57 +0200)
[ Upstream commit 1015c1016c231b26d4e2c9b3da65b6c043eb97a3 ]

Use kill_anon_super() instead of generic_shutdown_super() since the
mount() in erofs fscache mode uses get_tree_nodev() and associated
anon bdev needs to be freed.

Fixes: 9c0cc9c729657 ("erofs: add 'fsid' mount option")
Suggested-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Signed-off-by: Jia Zhu <zhujia.zj@bytedance.com>
Reviewed-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Link: https://lore.kernel.org/r/20220918043456.147-2-zhujia.zj@bytedance.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/erofs/super.c

index 95addc5c9d34ddab292b4ee5aa47d50df18290dc..ddf8f737cfb583462ca9aedc81fe019ed9491205 100644 (file)
@@ -877,7 +877,7 @@ static void erofs_kill_sb(struct super_block *sb)
        WARN_ON(sb->s_magic != EROFS_SUPER_MAGIC);
 
        if (erofs_is_fscache_mode(sb))
-               generic_shutdown_super(sb);
+               kill_anon_super(sb);
        else
                kill_block_super(sb);