On 2018/11/6 10:25, Yunlei He wrote:
> This patch move dir data flush to write checkpoint process, by
> doing this, it may reduce some time for dir fsync.
>
> pre:
> -f2fs_do_sync_file enter
> -file_write_and_wait_range <- flush & wait
> -write_checkpoint
> -do_checkpoint <- wait all
> -f2fs_do_sync_file exit
>
> now:
> -f2fs_do_sync_file enter
> -write_checkpoint
> -block_operations <- flush dir & no wait
> -do_checkpoint <- wait all
> -f2fs_do_sync_file exit
>
> Signed-off-by: Yunlei He <[email protected]>
> ---
> fs/f2fs/file.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index 88b1246..9eaf07f 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -216,6 +216,9 @@ static int f2fs_do_sync_file(struct file *file, loff_t
> start, loff_t end,
>
> trace_f2fs_sync_file_enter(inode);
>
> + if (S_ISDIR(inode->i_mode))
> + goto go_write;
Not sure, will we skip calling f2fs_write_inode due to this check? so we
will miss some metadata update cached in inode cache?
Thanks,
> +
> /* if fdatasync is triggered, let's do in-place-update */
> if (datasync || get_dirty_pages(inode) <= SM_I(sbi)->min_fsync_blocks)
> set_inode_flag(inode, FI_NEED_IPU);
>
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel