On 2021/8/6 16:35, Fengnan Chang wrote:
Um.. I think this version should be ok.

Well, actually, I mean adding description of this behavior into compression
section of f2fs.rst.

https://elixir.bootlin.com/linux/latest/source/Documentation/filesystems/f2fs.rst#L829

Thanks,


Thanks.

On 2021/7/23 10:31, Fengnan Chang wrote:
For compressed file, after release compress blocks, don't allow write
direct, but we should allow write direct after truncate to zero.

Signed-off-by: Fengnan Chang <[email protected]>
---
   fs/f2fs/file.c | 8 ++++++++
   1 file changed, 8 insertions(+)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 6afd4562335f..094f6546fd00 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -740,6 +740,14 @@ int f2fs_truncate_blocks(struct inode *inode, u64 from, 
bool lock)
                return err;
#ifdef CONFIG_F2FS_FS_COMPRESSION
+       /*
+        * For compressed file, after release compress blocks, don't allow write
+        * direct, but we should allow write direct after truncate to zero.
+        */
+       if (f2fs_compressed_file(inode) && !free_from
+                       && is_inode_flag_set(inode, FI_COMPRESS_RELEASED))
+               clear_inode_flag(inode, FI_COMPRESS_RELEASED);
+
        if (from != free_from) {
                err = f2fs_truncate_partial_cluster(inode, from, lock);
                if (err)



_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to