There is no such guarantee in the current kernel, either
with or without my patch.
A third application calling fsync or msync can get the
EIO cleared, so the application that did the write does
not see it.
The VM could also reclaim the PageError page due to
memory pressure, so the application calling fsync or
msync does not see it.
I see no good way in which we could guarantee that
every process calling msync or fsync on a file that
had an IO error in the past gets EIO once - at least,
not without every one of them always getting EIO on
the file even after the IO path is good again...
--
All rights reversed
--