linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] f2fs: fix to disable compression on directory
@ 2020-03-27 10:29 Chao Yu
  2020-03-27 10:29 ` [PATCH 2/3] f2fs: keep inline_data when compression conversion Chao Yu
  2020-03-27 10:29 ` [PATCH 3/3] f2fs: fix to check f2fs_compressed_file() in f2fs_bmap() Chao Yu
  0 siblings, 2 replies; 5+ messages in thread
From: Chao Yu @ 2020-03-27 10:29 UTC (permalink / raw)
  To: jaegeuk; +Cc: linux-f2fs-devel, linux-kernel, chao, Chao Yu

It needs to call f2fs_disable_compressed_file() to disable
compression on directory.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
 fs/f2fs/f2fs.h | 10 ++++++----
 fs/f2fs/file.c |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 9274399d9505..4e80cbe130d9 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -3850,10 +3850,12 @@ static inline u64 f2fs_disable_compressed_file(struct inode *inode)
 
 	if (!f2fs_compressed_file(inode))
 		return 0;
-	if (get_dirty_pages(inode))
-		return 1;
-	if (fi->i_compr_blocks)
-		return fi->i_compr_blocks;
+	if (S_ISREG(inode->i_mode)) {
+		if (get_dirty_pages(inode))
+			return 1;
+		if (fi->i_compr_blocks)
+			return fi->i_compr_blocks;
+	}
 
 	fi->i_flags &= ~F2FS_COMPR_FL;
 	stat_dec_compr_inode(inode);
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 1476a3bc6317..6cb3c6cae7cd 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1815,7 +1815,7 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask)
 	}
 
 	if ((iflags ^ masked_flags) & F2FS_COMPR_FL) {
-		if (S_ISREG(inode->i_mode) && (masked_flags & F2FS_COMPR_FL)) {
+		if (masked_flags & F2FS_COMPR_FL) {
 			if (f2fs_disable_compressed_file(inode))
 				return -EINVAL;
 		}
-- 
2.18.0.rc1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] f2fs: keep inline_data when compression conversion
  2020-03-27 10:29 [PATCH 1/3] f2fs: fix to disable compression on directory Chao Yu
@ 2020-03-27 10:29 ` Chao Yu
  2020-03-27 10:29 ` [PATCH 3/3] f2fs: fix to check f2fs_compressed_file() in f2fs_bmap() Chao Yu
  1 sibling, 0 replies; 5+ messages in thread
From: Chao Yu @ 2020-03-27 10:29 UTC (permalink / raw)
  To: jaegeuk; +Cc: linux-f2fs-devel, linux-kernel, chao, Chao Yu

We can keep compressed inode's data inline before inline conversion.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
 fs/f2fs/file.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 6cb3c6cae7cd..21f7108ca2ba 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1822,11 +1822,6 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask)
 		if (iflags & F2FS_NOCOMP_FL)
 			return -EINVAL;
 		if (iflags & F2FS_COMPR_FL) {
-			int err = f2fs_convert_inline_inode(inode);
-
-			if (err)
-				return err;
-
 			if (!f2fs_may_compress(inode))
 				return -EINVAL;
 
-- 
2.18.0.rc1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] f2fs: fix to check f2fs_compressed_file() in f2fs_bmap()
  2020-03-27 10:29 [PATCH 1/3] f2fs: fix to disable compression on directory Chao Yu
  2020-03-27 10:29 ` [PATCH 2/3] f2fs: keep inline_data when compression conversion Chao Yu
@ 2020-03-27 10:29 ` Chao Yu
  2020-03-27 19:32   ` Jaegeuk Kim
  1 sibling, 1 reply; 5+ messages in thread
From: Chao Yu @ 2020-03-27 10:29 UTC (permalink / raw)
  To: jaegeuk; +Cc: linux-f2fs-devel, linux-kernel, chao, Chao Yu

Otherwise, for compressed inode, returned physical block address
may be wrong.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
---
 fs/f2fs/data.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 24643680489b..f22f3ba10a48 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -3591,6 +3591,8 @@ static sector_t f2fs_bmap(struct address_space *mapping, sector_t block)
 
 	if (f2fs_has_inline_data(inode))
 		return 0;
+	if (f2fs_compressed_file(inode))
+		return 0;
 
 	/* make sure allocating whole blocks */
 	if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY))
-- 
2.18.0.rc1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] f2fs: fix to check f2fs_compressed_file() in f2fs_bmap()
  2020-03-27 10:29 ` [PATCH 3/3] f2fs: fix to check f2fs_compressed_file() in f2fs_bmap() Chao Yu
@ 2020-03-27 19:32   ` Jaegeuk Kim
  2020-03-28  8:38     ` Chao Yu
  0 siblings, 1 reply; 5+ messages in thread
From: Jaegeuk Kim @ 2020-03-27 19:32 UTC (permalink / raw)
  To: Chao Yu; +Cc: linux-f2fs-devel, linux-kernel, chao

On 03/27, Chao Yu wrote:
> Otherwise, for compressed inode, returned physical block address
> may be wrong.

We can use bmap to check the allocated (non)compressed blocks.

> 
> Signed-off-by: Chao Yu <yuchao0@huawei.com>
> ---
>  fs/f2fs/data.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index 24643680489b..f22f3ba10a48 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -3591,6 +3591,8 @@ static sector_t f2fs_bmap(struct address_space *mapping, sector_t block)
>  
>  	if (f2fs_has_inline_data(inode))
>  		return 0;
> +	if (f2fs_compressed_file(inode))
> +		return 0;
>  
>  	/* make sure allocating whole blocks */
>  	if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY))
> -- 
> 2.18.0.rc1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] f2fs: fix to check f2fs_compressed_file() in f2fs_bmap()
  2020-03-27 19:32   ` Jaegeuk Kim
@ 2020-03-28  8:38     ` Chao Yu
  0 siblings, 0 replies; 5+ messages in thread
From: Chao Yu @ 2020-03-28  8:38 UTC (permalink / raw)
  To: Jaegeuk Kim; +Cc: linux-f2fs-devel, linux-kernel, chao

On 2020/3/28 3:32, Jaegeuk Kim wrote:
> On 03/27, Chao Yu wrote:
>> Otherwise, for compressed inode, returned physical block address
>> may be wrong.
> 
> We can use bmap to check the allocated (non)compressed blocks.

Sure, I've updated it in v2.

Thanks,

> 
>>
>> Signed-off-by: Chao Yu <yuchao0@huawei.com>
>> ---
>>  fs/f2fs/data.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
>> index 24643680489b..f22f3ba10a48 100644
>> --- a/fs/f2fs/data.c
>> +++ b/fs/f2fs/data.c
>> @@ -3591,6 +3591,8 @@ static sector_t f2fs_bmap(struct address_space *mapping, sector_t block)
>>  
>>  	if (f2fs_has_inline_data(inode))
>>  		return 0;
>> +	if (f2fs_compressed_file(inode))
>> +		return 0;
>>  
>>  	/* make sure allocating whole blocks */
>>  	if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY))
>> -- 
>> 2.18.0.rc1
> .
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-03-28  8:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-27 10:29 [PATCH 1/3] f2fs: fix to disable compression on directory Chao Yu
2020-03-27 10:29 ` [PATCH 2/3] f2fs: keep inline_data when compression conversion Chao Yu
2020-03-27 10:29 ` [PATCH 3/3] f2fs: fix to check f2fs_compressed_file() in f2fs_bmap() Chao Yu
2020-03-27 19:32   ` Jaegeuk Kim
2020-03-28  8:38     ` Chao Yu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).