[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:ext2_bread関数アルゴリズム
}}}
== ext2_bread関数アルゴリズム == #SECTION03792000000000000000
ext2_bread関数は、ブロックの確保、ブロックに対応したバッファの確保、ブロック内容のバッファへの読み込みまでを行う。
{{{
ext2_bread(iノード, オフセット)
オフセットに対応するブロックのバッファを獲得(ext2_getblk関数)
if(バッファの内容が有効) return バッファ
if(ディレクトリの拡張があった && ディレクトリプリアロケーションモード) {
さらに一つブロックを先行拡張する(ext2_getblk関数)
スーパブロックに指定された数分だけブロックを先行拡張する(ext2_getblk関数)
}
バッファへブロックデータを読み込む(ll_rw_block関数、wait_on_buffer関数)
return バッファ
}}}
'''問題点など'''
1. この処理は、ディレクトリ拡張時に複数ブロックまとめて確保して しまうことを意味している。必要がないときは ディレクトリプリアロケーション機能が動かないようにして おかねばならない。(現時点においてはmkfsではデフォルトでこの機能 をOFFに初期化しており, 指定する方法もない)
----
''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]