On Tue, Aug 1, 2017 at 4:26 AM, Jan Kara [off-list ref] wrote:
On Tue 01-08-17 04:02:41, Christoph Hellwig wrote:
quoted
On Fri, Jul 28, 2017 at 11:38:21AM +0200, Jan Kara wrote:
quoted
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.
OK, makes sense and I like the MAP_SYNC proposal. I'll change it in my
implementation.
Does sys_mmap() reject unknown flag values today? I'm either not
looking in the right place or it's missing and we'll need some
interface/mechanism to check if MAP_SYNC is honored.