Meines Wissens nach gibt es unter Linux grundsätzlich keine Möglichkeit,
den Cache zu umgehen. Das gibt das Blockdevice-Interface, mit dem das
VFS auf die Geräte zugreift, gar nicht her. Das definiert nur eine
request Funktion, die direkt aus dem bzw. in den Cache liest und.
schreibt. Auch vermeintliche raw oder direct IO-Operationen müssen
diesen Weg gehen. Sie können lediglich versuchen, die Lebenszeit
gecachter Daten möglichst kurz zu halten um so dem gewünschte Verhalten
möglichst nahe zu kommen. Wirklich ungecachter Zugriff ist aber in
keinem Fall möglich. Zumindest war das bis zum Kernel 2.4 so, und ich
glaube nicht, dass sich das unter 2.6 geändert hat.
In Deinem Fall würde ich ein unmount/remount versuchen. Ohne Kenntnis
dessen, was der Kernel intern so treibt, ist das die meiner Meinung nach
einzige sichere Methode zu garantieren, dass die Daten wirklich einmal
über das Device gegangen sind. (Du kannst auch rebooten, dann gibt es
definitiv keine Zweifel mehr :-)