Dave Chinner <david@xxxxxxxxxxxxx> writes: >> But this part is not. It is up to the I/O scheduler to decide when to >> dispatch requests. It can hold on to them for a variety of reasons. >> Flush requests, however, do not go through the I/O scheduler. At the > > That's pure REQ_FLUSH bios, right? Aren't data IOs with > REQ_FLUSH|REQ_FUA sorted like any other IO? No, they also go through the flush machinery, and so short-circuit the I/O scheduler. >> Des xfs rely on this model for correctness? If so, I'd say we've got a >> problem > > No, it doesn't. The XFS integrity model doesn't trust the IO layers > to tell the truth about IO ordering and completion or for it's > developers to fully understand how IO layer ordering works. :P > > i.e. we wait for full completions of all dependent IO before issuing > flushes or log writes that use REQ_FLUSH|REQ_FUA semantics to ensure > the dependent IOs are fully caught by the cache flushes... OK, phew! ;-) -Jeff -- 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