aboutsummaryrefslogtreecommitdiff
path: root/documentation/manual-pages/ja/man9/VOP_INACTIVE.9
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/manual-pages/ja/man9/VOP_INACTIVE.9')
-rw-r--r--documentation/manual-pages/ja/man9/VOP_INACTIVE.9113
1 files changed, 113 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man9/VOP_INACTIVE.9 b/documentation/manual-pages/ja/man9/VOP_INACTIVE.9
new file mode 100644
index 0000000000..bdf20db783
--- /dev/null
+++ b/documentation/manual-pages/ja/man9/VOP_INACTIVE.9
@@ -0,0 +1,113 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 1996 Doug Rabson
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" %FreeBSD: src/share/man/man9/VOP_INACTIVE.9,v 1.14 2003/10/23 03:07:56 hmp Exp %
+.\"
+.\" $FreeBSD$
+.Dd July 24, 1996
+.Os
+.Dt VOP_INACTIVE 9
+.Sh 名称
+.Nm VOP_INACTIVE ,
+.Nm VOP_RECLAIM
+.Nd vnode のためのファイルシステム資源の回収
+.Sh 書式
+.In sys/param.h
+.In sys/vnode.h
+.Ft int
+.Fn VOP_INACTIVE "struct vnode *vp" "struct thread *td"
+.Ft int
+.Fn VOP_RECLAIM "struct vnode *vp" "struct thread *td"
+.Sh 解説
+引数は以下の通りです。
+.Bl -tag -width 2n
+.It Fa vp
+回収されている vnode。
+.El
+.Pp
+.Fn VOP_INACTIVE
+は、カーネルがもはやその vnode を使用しなくなった時に呼び出されます。
+これは、参照カウントが 0 になった時、
+またはオープンされているファイルがあるファイルシステムが
+強制的にアンマウントされた時に起こります。
+.Sq オープンされているが削除された
+ファイルのための領域を回収するために、
+使用可能です。
+.Pp
+.Fn VOP_RECLAIM
+は、異なるファイルシステムのために vnode が再利用される時に呼び出されます。
+vnode に関連しているあらゆるファイルシステム固有の資源は、解放されるべきです。
+.Sh ロック
+VOP_INACTIVE では、入る時に
+.Fa vp
+がロックされます。
+VOP_INACTIVE コードは、戻る前に
+.Fa vp
+をアンロックしなければなりません。
+.Pp
+VOP_RECLAIM では、入る時に
+.Fa vp
+はロックされず、戻り時もロックされないままでいるべきです。
+.Sh 疑似コード
+.Bd -literal
+int
+vop_inactive(struct vnode *vp, struct thread *td)
+{
+ if (link count of vp == 0) {
+ /*
+ * vp のためのファイルシステム内の領域を回収します。
+ */
+ ...;
+ }
+ VOP_UNLOCK(vp, 0, td);
+
+ return 0;
+}
+
+int
+vop_reclaim(struct vnode *vp, struct thread *td)
+{
+ /*
+ * 名前キャッシュを一掃します。
+ */
+ cache_purge(vp);
+
+ /*
+ * ファイルシステムに関連したデータを解放します。
+ */
+ ...;
+
+ return 0;
+}
+.Ed
+.Sh 関連項目
+.Xr vnode 9
+.Sh 作者
+このマニュアルページは
+.An Doug Rabson
+が書きました。