On 04/28, Fengnan Chang wrote:
> when write compressed file with O_TRUNC, there will be a lot of
> unnecessary check valid blocks in f2fs_prepare_compress_overwrite,
> especially when written in page size, remove it.
> 
> Signed-off-by: Fengnan Chang <[email protected]>
> ---
>  fs/f2fs/data.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index cf935474ffba..4cfc0472bc2d 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -3270,6 +3270,9 @@ static int f2fs_write_begin(struct file *file, struct 
> address_space *mapping,
>       struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
>       struct page *page = NULL;
>       pgoff_t index = ((unsigned long long) pos) >> PAGE_SHIFT;
> +#ifdef CONFIG_F2FS_FS_COMPRESSION
> +     pgoff_t end = (i_size_read(inode) + PAGE_SIZE - 1) >> PAGE_SHIFT;

Need to move this below?

> +#endif
>       bool need_balance = false, drop_atomic = false;
>       block_t blkaddr = NULL_ADDR;
>       int err = 0;
> @@ -3306,6 +3309,9 @@ static int f2fs_write_begin(struct file *file, struct 
> address_space *mapping,
> 
>               *fsdata = NULL;
> 
> +             if (index >= end)
> +                     goto repeat;
> +
>               ret = f2fs_prepare_compress_overwrite(inode, pagep,
>                                                       index, fsdata);
>               if (ret < 0) {
> -- 
> 2.29.0


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

Reply via email to