https://bugzilla.kernel.org/show_bug.cgi?id=103111 Theodore Tso <tytso@xxxxxxx> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tytso@xxxxxxx --- Comment #14 from Theodore Tso <tytso@xxxxxxx> --- Rakesh, if you are aware of truly broken programs that rename first and then write to the file (which means that they will lose data if they crash after the rename), let me know. The hueristics were designed to catch the most common cases of application brain-damage, to it: 1) write foo.new 2) fail to use fsync(2) as they should 3) close the file descriptor for foo.new 4) rename foo.new to foo The fact that we also catch the case of 1) truncate a file containing data down to zero 2) write a new version of the file, and hope you don't crash right after 1 Was because, if I recall correctly, both GNOME and KDE had something like this in their library functions and a lot of programs were calling it. ***Sigh*** I believe their excuse was that it was too hard to copy the ACL's and xattr's from foo to foo.new, and by using a truncate, they wouldn't have to do all of that hard work to read the acl and xattr's from the old file, and set them on foo.new before doing the rename. One especially brilliant application was rewriting the config file after each time the window was moved a pixel or two, so that the window location could be saved. So if you dragged the window around, the file would get written dozens if not hundreds of times. Just in case you ever wondered why many file system developers don't trust application / desktop programmers.... -- You are receiving this mail because: You are watching the assignee of the bug. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html