Dovrebbe svuota la cache, sì.
Probabilmente c'è una certa fragilità in questo percorso di codice. Non è implementato in un unico posto; è implementato in ogni singolo filesystem. Per esempio. ext2_remount() deve chiamare sync_filesystem().
Inoltre, in tutti i casi d'uso che conosco, viene utilizzato insieme a sync()
chiamata di sistema. Quindi, se fai affidamento su questo, e il kernel sbaglia, potresti avere il "privilegio" di essere il primo a notare un problema.
Se vuoi essere particolarmente attento, puoi usare sync -f /my/mounted/filesystem/
. È preferibile a sync
perché evita interferenze con qualsiasi altro filesystem. Utilizza la chiamata di sistema di Linux syncfs()
.