dentryの参照要求と参照の終了

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秒 JST
1