On Fri, 13 Oct 2023 14:13:50 +0200, Jan Kara wrote:
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.
[...]
Applied, thanks!
[1/1] ext4: Properly sync file size update after O_SYNC direct IO commit: c388da1dad59dc24801b61bc63539cab6cd83e23
Best regards,