diff options
author | Jan Kara <[email protected]> | 2023-10-13 14:13:50 +0200 |
---|---|---|
committer | Theodore Ts'o <[email protected]> | 2023-10-31 20:20:55 -0400 |
commit | 91562895f8030cb9a0470b1db49de79346a69f91 (patch) | |
tree | 8d5c28acee9663c9e8f736eb403205a5bc70c2fd /tools/perf/scripts/python/sched-migration.py | |
parent | ce56d21355cd6f6937aca32f1f44ca749d1e4808 (diff) |
ext4: properly sync file size update after O_SYNC direct IO
Gao Xiang has reported that on ext4 O_SYNC direct IO does not properly
sync file size update and thus if we crash at unfortunate moment, the
file can have smaller size although O_SYNC IO has reported successful
completion. The problem happens because update of on-disk inode size is
handled in ext4_dio_write_iter() *after* iomap_dio_rw() (and thus
dio_complete() in particular) has returned and generic_file_sync() gets
called by dio_complete(). Fix the problem by handling on-disk inode size
update directly in our ->end_io completion handler.
References: https://lore.kernel.org/all/[email protected]
Reported-by: Gao Xiang <[email protected]>
CC: [email protected]
Fixes: 378f32bab371 ("ext4: introduce direct I/O write using iomap infrastructure")
Signed-off-by: Jan Kara <[email protected]>
Tested-by: Joseph Qi <[email protected]>
Reviewed-by: "Ritesh Harjani (IBM)" <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Theodore Ts'o <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/sched-migration.py')
0 files changed, 0 insertions, 0 deletions