VOP_INACTIVE(9) FreeBSD 一般コマンドマニュアル

VOP_INACTIVE

前のページ 上に戻る 次のページ

VOP_INACTIVE


     #include <sys/vnode.h>

     int
     VOP_INACTIVE(struct vnode *vp, struct proc *p);

     int
     VOP_RECLAIM(struct vnode *vp, struct proc *p);


解説

     引数は以下の通りです。

     vp  回収されている vnode。

     VOP_INACTIVE(9) は、カーネルがもはやその vnode を使用しなくなった時に呼び
     出されます。これは、参照カウントが 0 になった時、またはオープンされている
     ファイルがあるファイルシステムが強制的にアンマウントされた時に起こりま
     す。「オープンされているが削除された」ファイルのための領域を回収するため
     に、使用可能です。 VOP_RECLAIM(9) は、異なるファイルシステムのために
     vnode が再利用される時に呼び出されます。 vnode に関連しているあらゆるファ
     イルシステム固有の資源は、開放されるべきです。


ロック

     VOP_INACTIVE では、入る時に vp がロックされます。 VOP_INACTIVE コードは、
     戻る前に vp をアンロックしなければなりません。

     VOP_RECLAIM では、入る時に vp はロックされず、戻り時もロックされないまま
     でいるべきです。


疑似コード

     int
     vop_inactive(struct vnode *vp)
     {
         if (link count of vp == 0) {
             /*
              * vp のためのファイルシステム内の領域を回収します。
              */
             ...;
         }
         VOP_UNLOCK(vp, 0, p);

         return 0;
     }

     int
     vop_reclaim(struct vnode *vp)
     {
         /*
          * 名前キャッシュを一掃します。
          */
         cache_purge(vp);

         /*

ABELNET VPSサービス