12月版 ネットワークアクセス権も放棄せよ 小崎資広 2010/1/12 2.6.33マージウィンドウで見掛けた粋なパッチたち ■真のO_SYNCサポート POSIXでは、O_SYNCとO_DSYNCには異なる意味が与えられており、O_DSYNCはWrite I/O時にデータのストレージへの書き込み完了を保証しますが、O_SYNCはデータだけではなくファイル変更時間などのデータ以外のファイル情報の書き込み完了も保証するという違いがあります(なお、似たようなフラグとしてO_RSYNCというフラグもあり、こちらはRead I/O時に書き込みが完了することを保証します)。 ところが歴史的な事情により、従来のLinuxのO_SYNCの実装はかなりクレイジーな状況でした。まず、カーネルはO_SYNCのみを定義しており、glibc側でコンパイルを通すためのダミー定義を以下のように行っていました。 /*