ジャーナリング/ログ先行書き込みストレージシステムを構築しているとしましょう。(トランザクションごとに)データを追加し(write(2)を使用)、コミットマーカーを追加してから、fsyncすることで、これを簡単に実装できますか?
考慮すべきシナリオは、このログに大量の書き込みを行ってからfsyncを実行し、fsync中に障害が発生した場合です。iノードの直接/間接ブロックポインタは、すべてのデータブロックがフラッシュされた後にのみフラッシュされますか、それともブロックが順番にフラッシュされるという保証はありませんか?後者の場合、リカバリ中にファイルの最後にコミットマーカーが表示されていると、そのファイルと前のコミットマーカーの間のデータに意味があるとは信じられません。したがって、ログファイルのどの範囲が一貫しているかを判断するには、別のメカニズム(少なくとも別のfsyncを含む)に依存する必要があります(たとえば、データの書き込み/ fsync、次にコミットマーカーの書き込み/ fsync)。
それが違いを生むなら、主にコンテキストとしてext3/ext4について疑問に思います。