debería limpiar el caché, sí.
Podría decirse que hay cierta fragilidad en esta ruta de código. No se implementa en un solo lugar; se implementa en cada sistema de archivos individual. P.ej. ext2_remount() debe llamar a sync_filesystem().
Además, en todos los casos de uso que conozco, se usa junto con el sync() llamada del sistema. Entonces, si confía en esto y el núcleo se equivoca, es posible que tenga el "privilegio" de ser el primero en notar un problema.
Si quieres ser más cuidadoso, puedes usar sync -f /my/mounted/filesystem/ . Es preferible sync porque evita la interferencia con cualquier otro sistema de archivos. Utiliza la llamada del sistema Linux syncfs() .