On 2022/2/8 9:35, Chao Yu wrote:
On 2022/2/8 3:14, Jaegeuk Kim wrote:
On 02/07, Chao Yu wrote:
During checkpoint, we have committed preflush command via
f2fs_flush_device_cache()
787 int f2fs_flush_device_cache(struct f2fs_sb_info *sbi)
788 {
789 int ret = 0, i;
790
791 if (!f2fs_is_multi_device(sbi))
792 return 0;
Seems a wrong assumption.
Oh, I missed that f2fs_flush_device_cache was introduced to flush devices except
first device when multi-device feature is on.
for (i = 1; i < sbi->s_ndevs; i++) {
int count = DEFAULT_RETRY_IO_COUNT;
So, this patch seems wrong...
Instead, below case looks wrong since it needs to trigger flush during
checkpoint()
no matter nobarrier is on or off.
Wrong comments, let's ignore this patch, sorry.
Thanks,
if (test_opt(sbi, NOBARRIER))
return 0;
Thanks,
to persist all metadata pages except last #2 CP pack page, so we don't need to
commit another preflush command in commit_checkpoint(), remove it to avoid
unneeded
write cache overhead.
Signed-off-by: Chao Yu <[email protected]>
---
fs/f2fs/data.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 8c417864c66a..15ac18bbbc8e 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -598,7 +598,7 @@ static void __f2fs_submit_merged_write(struct f2fs_sb_info
*sbi,
io->fio.op = REQ_OP_WRITE;
io->fio.op_flags = REQ_META | REQ_PRIO | REQ_SYNC;
if (!test_opt(sbi, NOBARRIER))
- io->fio.op_flags |= REQ_PREFLUSH | REQ_FUA;
+ io->fio.op_flags |= REQ_FUA;
}
__submit_merged_bio(io);
up_write(&io->io_rwsem);
--
2.32.0
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel