summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/inode.c
diff options
context:
space:
mode:
authorFengnan Chang <changfengnan@vivo.com>2021-11-26 18:19:19 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2021-12-10 15:48:32 -0800
commitd1917865a7906baf6b687e15e8e6195a295a3992 (patch)
treefd488eebdf35e8a136303fd244950650f9a256bf /fs/f2fs/inode.c
parentbd984c03097b8e9b7500cba7378040ac1c697dbb (diff)
downloadlinux-d1917865a7906baf6b687e15e8e6195a295a3992.tar.gz
linux-d1917865a7906baf6b687e15e8e6195a295a3992.tar.bz2
linux-d1917865a7906baf6b687e15e8e6195a295a3992.zip
f2fs: fix remove page failed in invalidate compress pages
Since compress inode not a regular file, generic_error_remove_page in f2fs_invalidate_compress_pages will always be failed, set compress inode as a regular file to fix it. Fixes: 6ce19aff0b8c ("f2fs: compress: add compress_inode to cache compressed blocks") Signed-off-by: Fengnan Chang <changfengnan@vivo.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/inode.c')
-rw-r--r--fs/f2fs/inode.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index 6998eb1d6bdb..935016e56010 100644
--- a/fs/f2fs/inode.c
+++ b/fs/f2fs/inode.c
@@ -516,6 +516,11 @@ make_now:
} else if (ino == F2FS_COMPRESS_INO(sbi)) {
#ifdef CONFIG_F2FS_FS_COMPRESSION
inode->i_mapping->a_ops = &f2fs_compress_aops;
+ /*
+ * generic_error_remove_page only truncates pages of regular
+ * inode
+ */
+ inode->i_mode |= S_IFREG;
#endif
mapping_set_gfp_mask(inode->i_mapping,
GFP_NOFS | __GFP_HIGHMEM | __GFP_MOVABLE);