f2fs: compress: fix to disallow enabling compress on non-empty file
Compressed inode and normal inode has different layout, so we should disallow enabling compress on non-empty file to avoid race condition during inode .i_addr array parsing and updating. Signed-off-by: Chao Yu <yuchao0@huawei.com> [Jaegeuk Kim: Fix missing condition] Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
c68d6c8830
commit
519a5a2f37
@ -1821,6 +1821,8 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask)
|
|||||||
if (iflags & F2FS_COMPR_FL) {
|
if (iflags & F2FS_COMPR_FL) {
|
||||||
if (!f2fs_may_compress(inode))
|
if (!f2fs_may_compress(inode))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
if (S_ISREG(inode->i_mode) && inode->i_size)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
set_compress_context(inode);
|
set_compress_context(inode);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user