If a file has FI_COMPRESS_RELEASED, all writes for it should not be
allowed.
Fixes: 5fdb322ff2c2 ("f2fs: add F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE")
Signed-off-by: Qi Han <[email protected]>
Signed-off-by: Yangtao Li <[email protected]>
---
fs/f2fs/file.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 5ac53d2627d2..46c62923f096 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -2593,6 +2593,11 @@ static int f2fs_defragment_range(struct f2fs_sb_info *sbi,
inode_lock(inode);
+ if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED)) {
+ inode_unlock(inode);
+ return -EINVAL;
+ }
+
/* if in-place-update policy is enabled, don't waste time here */
set_inode_flag(inode, FI_OPU_WRITE);
if (f2fs_should_update_inplace(inode, NULL)) {
--
2.39.0
On 2023/4/26 0:47, Yangtao Li wrote:
> If a file has FI_COMPRESS_RELEASED, all writes for it should not be
> allowed.
>
> Fixes: 5fdb322ff2c2 ("f2fs: add F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE")
> Signed-off-by: Qi Han <[email protected]>
> Signed-off-by: Yangtao Li <[email protected]>
Oh, I just see v2.
Reviewed-by: Chao Yu <[email protected]>
Thanks,
On 04/27, Chao Yu wrote:
> On 2023/4/26 0:47, Yangtao Li wrote:
> > If a file has FI_COMPRESS_RELEASED, all writes for it should not be
> > allowed.
> >
> > Fixes: 5fdb322ff2c2 ("f2fs: add F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE")
> > Signed-off-by: Qi Han <[email protected]>
> > Signed-off-by: Yangtao Li <[email protected]>
>
> Oh, I just see v2.
>
> Reviewed-by: Chao Yu <[email protected]>
Applied with using goto for code consistency.
+ if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED)) {
+ err = -EINVAL;
+ goto unlock_out;
+ }
+
/* if in-place-update policy is enabled, don't waste time here */
set_inode_flag(inode, FI_OPU_WRITE);
if (f2fs_should_update_inplace(inode, NULL)) {
@@ -2712,6 +2717,7 @@ static int f2fs_defragment_range(struct f2fs_sb_info *sbi,
clear_inode_flag(inode, FI_SKIP_WRITES);
out:
clear_inode_flag(inode, FI_OPU_WRITE);
+unlock_out:
inode_unlock(inode);
if (!err)
range->len = (u64)total << PAGE_SHIFT;
>
> Thanks,
On 2023/4/28 0:21, Jaegeuk Kim wrote:
> On 04/27, Chao Yu wrote:
>> On 2023/4/26 0:47, Yangtao Li wrote:
>>> If a file has FI_COMPRESS_RELEASED, all writes for it should not be
>>> allowed.
>>>
>>> Fixes: 5fdb322ff2c2 ("f2fs: add F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE")
>>> Signed-off-by: Qi Han <[email protected]>
>>> Signed-off-by: Yangtao Li <[email protected]>
>>
>> Oh, I just see v2.
>>
>> Reviewed-by: Chao Yu <[email protected]>
>
> Applied with using goto for code consistency.
It makes sense,
Reviewed-by: Chao Yu <[email protected]>
Thanks,
>
> + if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED)) {
> + err = -EINVAL;
> + goto unlock_out;
> + }
> +
> /* if in-place-update policy is enabled, don't waste time here */
> set_inode_flag(inode, FI_OPU_WRITE);
> if (f2fs_should_update_inplace(inode, NULL)) {
> @@ -2712,6 +2717,7 @@ static int f2fs_defragment_range(struct f2fs_sb_info *sbi,
> clear_inode_flag(inode, FI_SKIP_WRITES);
> out:
> clear_inode_flag(inode, FI_OPU_WRITE);
> +unlock_out:
> inode_unlock(inode);
> if (!err)
> range->len = (u64)total << PAGE_SHIFT;
>
>>
>> Thanks,