Jeff Garzik wrote:Sorry for misunderstanding the scope of this before - this is certainly a net win for the file systems that don't have proper barrier support baked in already. Thanks!Ric Wheeler wrote:
What do you think sync_blockdev() does? What is its purpose?
Twofold:
(1) guarantee all user data is flushed out before a major event (unmount, journal close, unplug, poweroff, explosion, ...)
(2) As a sledgehammer hack for simple or legacy filesystems that do not wish or need the complexity of transactional protection. sync_blockdev() is intentionally used in lieu of complexity for the following filesystems: HFS, HFS+, ADFS, AFFS, FAT, bfs, UFS, NTFS, qnx4.
My patch adds needed guarantees, only for the above filesystems, where none were present before.
To be specific, I was referring to fsync(2) guarantees being added to HFS, HFS+, ADFS, AFFS, FAT, bfs, UFS, NTFS, and qnx4.
Other filesystems, besides those in the list, gain the flush-on-unmount action (a rare but useful addition) with my patch.
Jeff