[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:問題点、注意点
}}}
==== 問題点、注意点 ==== #SECTION037110010000000000000
1. SYNCモードのマウント時であっても、ここで行う操作は 全て遅延書き込みで実現されている。 ディスク更新順序は上位モジュールにゆだねられている。
1. ディレクトリ拡張が発生した場合、ディレクトリブロックを初期化し ディスクに書き込むタイミングと、iノードのファイルサイズを ディスクに書き込みタイミングは、上位モジュールの動作によって は、ディレクトリブロックより先にiノードが書き込まれてしまう。 これは、このタイミングでシステムクラッシュすると不正な ディレクトリブロックが残る可能性がある。(注)上位モジュールの 作りによる。
1. ディレクトリ拡張が発生した場合、ディレクトリブロックの割当は ext2_bread関数の延長で行われるが、 ディレクトリのiノードそのものの更新は遅延書き込みとなっている。 つまり、このタイミングでシステムがクラッシュすると ファイルサイズ情報が更新されていないため、ディレクトリに 新規登録したファイルを参照できなくなってしまう。
1. ext2_delete_entry関数は、ファイル登録の削除を行ったディレクトリ のディスクへの書き込みは全く行っていない(遅延書き込み要求さえ 出していない)。書き込みの責任は全て上位呼び出し側が受け持たねば ならない。
1. ディレクトリからのファイル名検索、ディレクトリへのファイル登録は、 毎回ディレクトリ先頭からの線形探索となる為、大きなディレクトリは アクセス速度の面で非常に不利である。
'''補足'''
ext2_add_entry関数は、エントリ名の重なりチェックは完全には行わない。呼び出し側で考慮しなければならない。
----
''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]