2021-11-15 10:10:48

by Xin Yin

[permalink] [raw]
Subject: [PATCH] ext4:fix different behavior of fsync when use fast commit

For the follow test example:
-mkdir test/
-create&write test/a.txt
-fsync test/a.txt
-crash (before a full commit)

If fast commit is used then "a.txt" will lost, while the normal
journaling can recover it.

We should keep behavior of fsync unchanged when use fast commit.

other report: https://www.spinics.net/lists/linux-ext4/msg80514.html

Signed-off-by: Xin Yin <[email protected]>
---
fs/ext4/fast_commit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c
index 8ea5a81e6554..2fc573575ebc 100644
--- a/fs/ext4/fast_commit.c
+++ b/fs/ext4/fast_commit.c
@@ -523,7 +523,7 @@ void __ext4_fc_track_create(handle_t *handle, struct inode *inode,
args.op = EXT4_FC_TAG_CREAT;

ret = ext4_fc_track_template(handle, inode, __track_dentry_update,
- (void *)&args, 0);
+ (void *)&args, 1);
trace_ext4_fc_track_create(inode, dentry, ret);
}

--
2.20.1