On Thu, 15 Sep 2022, NeilBrown wrote: > > When the code was written, the inode semaphore (before mutexes) was held > over the whole thing, and timestamp resolution was 1 second. So > ordering didn't really matter. Since then locking has bee reduced and > precision increased but no-one saw any need to fix the ordering. I > think that is fine for timestamps. Actually it is much more complex than that, though the principle is still the same https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=636b38438001a00b25f23e38747a91cb8428af29 shows i_mtime updates being moved from *after* a call to generic_file_write() in each filesystem to *early* in the body of generic_file_write(). Probably because that was just a convenient place to put it. NeilBrown