Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
dentryを利用する前には必ず、dget関数を呼び出しdentryの参照数を1増やしておかねばならない。dget関数はdentryの参照数を1増やす関数である。
また参照が終わったら、dput関数によってdentryの参照数を1減らさなければならない。このとき参照数が0になった場合、そのdentryの状態により、処理が分かれる。またdputによりこのdentryが解放されてしまう場合は、親ディレクトリのdentryに対するdputも呼び出している。(子ファイルからの参照を一つ減らすため)
dput(dentry) 参照数を1減らす if (参照数 >= 1) { return } if (既にキャッシュに登録されていない) { dentryのリンクを全て切る。 対応するinodeの解放(dentry_iput関数) dentryのメモリ領域解放(d_free関数) 親ディレクトリのdentryに対してdput関数を呼びだす。 } else { dentry_unusedリストに繋ぐ }
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[PageInfo]
LastUpdate: 2008-08-27 14:19:05, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members