Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
上記dentry操作関数群だけだと、基本的にどんどんdentryの領域が増えて行く。増えすぎたエントリは、prune_dcache関数により不必要そうなものから順番に解放される。prune_dcache関数は以下の処理から呼び出される。
prune_dcache(解放するdentryの希望数) while(dentry_unusedリストに継っている) { dentry_unusedリストの最後のdentryをはずす if(誰からも参照されてないなら) { dentryの解放(prune_one_dentry関数) } if(解放希望数を満たした) return; } prune_one_dentry(dentry) dentryのリンクを全てきる iノードを解放(dentry_iput関数) dentryのメモリ領域解放(d_free関数) 親ディレクトリのdentryの参照の終了(dput関数)
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[PageInfo]
LastUpdate: 2008-08-27 14:18:23, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members