[PATCH] f2fs: prevent compressed file from being disabled after releasing cblocks

From: Daeho Jeong
Date: Fri Aug 28 2020 - 01:46:52 EST


From: Daeho Jeong <daehojeong@xxxxxxxxxx>

After releasing cblocks, the compressed file can be accidentally
disabled in compression mode, since it has zero cblocks. As we are
using IMMUTABLE flag to present released cblocks state, we can add
IMMUTABLE state check when considering the compressed file disabling.

Signed-off-by: Daeho Jeong <daehojeong@xxxxxxxxxx>
---
fs/f2fs/f2fs.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 02811ce15059..14d30740ba03 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -3936,6 +3936,8 @@ static inline u64 f2fs_disable_compressed_file(struct inode *inode)
if (!f2fs_compressed_file(inode))
return 0;
if (S_ISREG(inode->i_mode)) {
+ if (IS_IMMUTABLE(inode))
+ return 1;
if (get_dirty_pages(inode))
return 1;
if (fi->i_compr_blocks)
--
2.28.0.402.g5ffc5be6b7-goog