On 31/03/2016 22:34, Eric Blake wrote: > give me possibly stale data because I accessed > the underlying storage rather than paying attention to in-flight writes > that would change what I read".
Overlapping I/O is always unspecified, so you should expect stale data if a read overlaps an in-flight write. Not only there's no guarantee of atomicity; the disk is a "safe register" rather than a "regular register" (http://stackoverflow.com/questions/8871633/whats-the-difference-between-safe-regular-and-atomic-registers) The way QEMU does "flush first" for FUA on reads provides the guarantee that "no one else can read something older than what I read", but that assumes that no one else is doing an overlapping write. Paolo