EN JA
INSMNTQUE(9)
INSMNTQUE(9) FreeBSD Kernel Developer's Manual INSMNTQUE(9)

名称

insmntque, insmntque1vnode をマウントを関連づける

書式

#include < sys/param.h>
#include < sys/vnode.h>

int
insmntque( struct vnode *vp, struct mount *mp);

int
insmntque1( struct vnode *vp, struct mount *mp, void (*dtr)(struct vnode *, void *), void *dtr_arg);

解説

insmntque() 関数は、vnode をマウントに関連づけます。これは、vnode のための v_mount の更新と、マウントの vnode リストに vnode を挿入することを含んでいます。

マウント参照カウントは、マウントに追加された各 vnode のために増加され、その参照は、 vgone(9) によって減少されます。

マウントのインタロックは、vnode が挿入されている間、保持されます。 MP セーフファイルシステムにおいて、vnode を、排他的にロックしなければなりません。

失敗すれば、 insmntque() は、供給された vnode で vgone(9) を呼び出し、次に、vnode ロックと参照を落とします。 insmntque() の失敗の後により念入りなクリーンアップが必要であるなら、 insmntque1() 関数が、代わりに使用されます。 dtr 引数は、失敗したとき、呼び出される関数へのポインタです。この関数は、任意のカスタムクリーンアップを実行します。 vnode ポインタは、 dtr への最初の引数として供給されます。 2 番目の dtr_arg 引数は、必要な任意の追加コンテキストを供給します。

戻り値

insmntque() 関数は、ファイルシステムが現在マウントされていないなら、常にを 0 返し、マウントされている場合は、 EBUSY を返します。また、 insmntque() は、たとえファイルシステムがアンマウントされていたとしても、vnode の v_flagVV_FORCEINSMQ フラグを設定することによって、マウントの vnode リストに強制的に vnode を挿入します。

関連項目

vgone(9)

作者

このマニュアルページは、 Chad David <davidc@acns.ab.ca>によって書かれました。
September 8, 2008 FreeBSD