2020-07-30 05:10:53

by Daeho Jeong

[permalink] [raw]
Subject: [PATCH] f2fs: make file immutable even if releasing zero compression block

From: Daeho Jeong <[email protected]>

When we use F2FS_IOC_RELEASE_COMPRESS_BLOCKS ioctl, if we can't find
any compressed blocks in the file even with large file size, the
ioctl just ends up without changing the file's status as immutable.
It makes the user, who expects that the file is immutable when it
returns successfully, confused.

Signed-off-by: Daeho Jeong <[email protected]>
---
fs/f2fs/file.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index cc7f5670390f..8a422400e824 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3535,14 +3535,14 @@ static int f2fs_release_compress_blocks(struct file *filp, unsigned long arg)
if (ret)
goto out;

- if (!F2FS_I(inode)->i_compr_blocks)
- goto out;
-
F2FS_I(inode)->i_flags |= F2FS_IMMUTABLE_FL;
f2fs_set_inode_flags(inode);
inode->i_ctime = current_time(inode);
f2fs_mark_inode_dirty_sync(inode, true);

+ if (!F2FS_I(inode)->i_compr_blocks)
+ goto out;
+
down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
down_write(&F2FS_I(inode)->i_mmap_sem);

--
2.28.0.rc0.142.g3c755180ce-goog


2020-08-04 00:58:08

by Chao Yu

[permalink] [raw]
Subject: Re: [f2fs-dev] [PATCH] f2fs: make file immutable even if releasing zero compression block

On 2020/7/30 13:09, Daeho Jeong wrote:
> From: Daeho Jeong <[email protected]>
>
> When we use F2FS_IOC_RELEASE_COMPRESS_BLOCKS ioctl, if we can't find
> any compressed blocks in the file even with large file size, the
> ioctl just ends up without changing the file's status as immutable.
> It makes the user, who expects that the file is immutable when it
> returns successfully, confused.
>
> Signed-off-by: Daeho Jeong <[email protected]>

Reviewed-by: Chao Yu <[email protected]>

Thanks,