[PATCH v2] f2fs: allow compression of files without blocks

Chao Liu posted 1 patch 3 years, 9 months ago
fs/f2fs/file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] f2fs: allow compression of files without blocks
Posted by Chao Liu 3 years, 9 months ago
From: Chao Liu <liuchao@coolpad.com>

Files created by truncate(1) have a size but no blocks, so
they can be allowed to enable compression.

Signed-off-by: Chao Liu <liuchao@coolpad.com>
---
v2:
 - update commit message: truncate -> truncate(1)

 fs/f2fs/file.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 0f29af7876a6..f7a82858486a 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1879,7 +1879,7 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask)
 		if (iflags & F2FS_COMPR_FL) {
 			if (!f2fs_may_compress(inode))
 				return -EINVAL;
-			if (S_ISREG(inode->i_mode) && inode->i_size)
+			if (S_ISREG(inode->i_mode) && F2FS_HAS_BLOCKS(inode))
 				return -EINVAL;

 			set_compress_context(inode);
--
2.36.1
Re: [PATCH v2] f2fs: allow compression of files without blocks
Posted by Jaegeuk Kim 3 years, 9 months ago
On 07/07, Chao Liu wrote:
> From: Chao Liu <liuchao@coolpad.com>
> 
> Files created by truncate(1) have a size but no blocks, so
> they can be allowed to enable compression.
> 
> Signed-off-by: Chao Liu <liuchao@coolpad.com>
> ---
> v2:
>  - update commit message: truncate -> truncate(1)
> 
>  fs/f2fs/file.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index 0f29af7876a6..f7a82858486a 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -1879,7 +1879,7 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask)
>  		if (iflags & F2FS_COMPR_FL) {
>  			if (!f2fs_may_compress(inode))
>  				return -EINVAL;
> -			if (S_ISREG(inode->i_mode) && inode->i_size)
> +			if (S_ISREG(inode->i_mode) && F2FS_HAS_BLOCKS(inode))

What about inline_data case?

>  				return -EINVAL;
> 
>  			set_compress_context(inode);
> --
> 2.36.1
Re: [PATCH v2] f2fs: allow compression of files without blocks
Posted by Chao Yu 3 years, 9 months ago
On 2022/7/12 9:36, Jaegeuk Kim wrote:
> On 07/07, Chao Liu wrote:
>> From: Chao Liu <liuchao@coolpad.com>
>>
>> Files created by truncate(1) have a size but no blocks, so
>> they can be allowed to enable compression.
>>
>> Signed-off-by: Chao Liu <liuchao@coolpad.com>
>> ---
>> v2:
>>   - update commit message: truncate -> truncate(1)
>>
>>   fs/f2fs/file.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
>> index 0f29af7876a6..f7a82858486a 100644
>> --- a/fs/f2fs/file.c
>> +++ b/fs/f2fs/file.c
>> @@ -1879,7 +1879,7 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask)
>>   		if (iflags & F2FS_COMPR_FL) {
>>   			if (!f2fs_may_compress(inode))
>>   				return -EINVAL;
>> -			if (S_ISREG(inode->i_mode) && inode->i_size)
>> +			if (S_ISREG(inode->i_mode) && F2FS_HAS_BLOCKS(inode))
> 
> What about inline_data case?

How about fixing this w/ a separated patch?

f2fs: fix to check inline_data during compressed inode conversion

Thanks,

> 
>>   				return -EINVAL;
>>
>>   			set_compress_context(inode);
>> --
>> 2.36.1
Re: [PATCH v2] f2fs: allow compression of files without blocks
Posted by Chao Yu 3 years, 9 months ago
On 2022/7/7 17:09, Chao Liu wrote:
> From: Chao Liu <liuchao@coolpad.com>
> 
> Files created by truncate(1) have a size but no blocks, so
> they can be allowed to enable compression.
> 
> Signed-off-by: Chao Liu <liuchao@coolpad.com>

Reviewed-by: Chao Yu <chao@kernel.org>

Thanks,