Bryan Henderson wrote:
Here's a thought for someone implementing fdatasync(). If a database
uses O_DIRECT writes (typically with aio), then wants data which it's
written to be committed to the hard disk platter, and the filesystem
is mounted "barrier=1" - should it call fdatasync()? Should that emit
the barrier? If another application uses normal (not O_DIRECT)
writes, and then _is delayed_ so long that kernel writeback occurs and
all cache is clean, and then calls fdatasync(), should that call emit
a barrier in that case? (Answers imho: yes and yes).
I don't get it. What would be the value of emitting the barrier?
In both cases the FS must flush the drive write cache.
So which of Jamie's traps got you ...
EMIT (SEND) the barrier, not OMIT.
"all cache is clean": meaning KERNEL cache, not DRIVE cache.
? :) jim
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html