On Fri, Jul 28, 2017 at 11:38:21AM +0200, Jan Kara wrote: > Well, you are right I can make the implementation work with struct file > flag as well - let's call it O_DAXDSYNC. However there are filesystem > operations where you may need to answer question: Is there any fd with > O_DAXDSYNC open against this inode (for operations that change file offset > -> block mapping)? And in that case inode flag is straightforward while > file flag is a bit awkward (you need to implement counter of fd's with that > flag in the inode). We can still keep and inode flag as the internal implementation detail. As mentioned earlier the right flag to control behavior of a mapping is an mmap flag. And the initial naive implementation would simply mark the inode as sync once the first MAP_SYNC open happens on it. We could then move to more precise tracking if/when needed.