Si tenga presente infine che anche se l'uso di \const{O\_DIRECT} comporta
sostanzialmente una scrittura sincrona dei dati dei buffer in \textit{user
space}, questo non è completamente equivalente all'uso di \const{O\_SYNC}
-che garantisce anche sulla scrittura sincrona dei metadati. Per questo in
-genere è opportuno se si usa \const{O\_DIRECT} è opportuno richiedere anche
-\const{O\_SYNC}.
+che garantisce anche sulla scrittura sincrona dei metadati associati alla
+scrittura dei dati del file. Per questo in genere è opportuno se si usa
+\const{O\_DIRECT} è opportuno richiedere anche \const{O\_SYNC}.
Si tenga presente infine che la implementazione di \const{O\_SYNC} di Linux
-differisce da quanto previsto dallo standard POSIX.1 che prevede altri due
-flag \const{O\_DSYNC}
+differisce da quanto previsto dallo standard POSIX.1 che prevede, oltre a
+questo flag che dovrebbe indicare la sincronizzazione completa di tutti i dati
+e di tutti i metadati, altri due flag \const{O\_DSYNC} e \const{O\_RSYNC}. Il
+primo dei due richiede la scrittura sincrona di tutti i dati del file e dei
+metadati che ne consentono l'immediata rilettura, ma non di tutti i metadati,
+per evitare la perdita di prestazioni relativa alla sincronizzazione di
+informazioni ausiliarie come i tempi dei file.
+Il secondo, da usare in combinazione con \const{O\_SYNC} o \const{O\_DSYNC} ne
+sospende l'effetto, consentento al kernel di bufferizzare le scritture, ma
+soltanto finché non avviene una lettura, in quel caso i dati ed i metadati
+dovranno essere sincronizzati (secondo le modalità indicate da \const{O\_SYNC}
+e \const{O\_DSYNC}) e la lettura verrà bloccata fintanto che detta
+sincronizzazione non sia completata.
+
+Nel caso di Linux fino al kernel 2.6.33 la sola semantica supportata era
+quella di \const{O\_DSYNC} o
+
+ \const{O\_DSYNC}
+
+
+e \const{O\_RSYNC}
+erano sinoni
+
+
+che una lettura si blocchi
- diversi
- \const{O\_FSYNC} Sinonimo di \const{O\_SYNC}, usato da BSD.
\const{O\_DSYNC} Variante di I/O sincrono definita da POSIX; presente
dal kernel 2.1.130 come sinonimo di
\const{O\_SYNC}.
- \const{O\_RSYNC} & Variante analoga alla precedente, trattata allo
+ \const{O\_RSYNC} Variante analoga alla precedente, trattata allo
stesso modo.