Commit aa576970 authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim

f2fs: fix to disable compression on directory

It needs to call f2fs_disable_compressed_file() to disable
compression on directory.
Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 9b6ed143
...@@ -3849,10 +3849,12 @@ static inline u64 f2fs_disable_compressed_file(struct inode *inode) ...@@ -3849,10 +3849,12 @@ static inline u64 f2fs_disable_compressed_file(struct inode *inode)
if (!f2fs_compressed_file(inode)) if (!f2fs_compressed_file(inode))
return 0; return 0;
if (get_dirty_pages(inode)) if (S_ISREG(inode->i_mode)) {
return 1; if (get_dirty_pages(inode))
if (fi->i_compr_blocks) return 1;
return fi->i_compr_blocks; if (fi->i_compr_blocks)
return fi->i_compr_blocks;
}
fi->i_flags &= ~F2FS_COMPR_FL; fi->i_flags &= ~F2FS_COMPR_FL;
stat_dec_compr_inode(inode); stat_dec_compr_inode(inode);
......
...@@ -1815,7 +1815,7 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask) ...@@ -1815,7 +1815,7 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask)
} }
if ((iflags ^ masked_flags) & F2FS_COMPR_FL) { if ((iflags ^ masked_flags) & F2FS_COMPR_FL) {
if (S_ISREG(inode->i_mode) && (masked_flags & F2FS_COMPR_FL)) { if (masked_flags & F2FS_COMPR_FL) {
if (f2fs_disable_compressed_file(inode)) if (f2fs_disable_compressed_file(inode))
return -EINVAL; return -EINVAL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment