If barrier is enabled, for strict fsync mode, we should force to use atomic write semantics to avoid data corruption due to no barrier support in lower device.
Signed-off-by: Chao Yu <yuch...@huawei.com> --- fs/f2fs/file.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 86ddbb55d2b1..c9dd45f82fbd 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -241,6 +241,13 @@ static int f2fs_do_sync_file(struct file *file, loff_t start, loff_t end, }; unsigned int seq_id = 0; + /* + * for strict fsync mode, force to keep atomic write sematics to avoid + * data corruption if lower device doesn't support write barrier. + */ + if (!atomic && F2FS_OPTION(sbi).fsync_mode == FSYNC_MODE_STRICT) + atomic = true; + if (unlikely(f2fs_readonly(inode->i_sb) || is_sbi_flag_set(sbi, SBI_CP_DISABLED))) return 0; -- 2.18.0.rc1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel