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)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Tue, 20 Sep 2022 00:01:53 +0000 (08:01 +0800)
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>
fs/erofs/super.c

index 3173deb..9716d35 100644 (file)
@@ -879,7 +879,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);