vfs_vget 入口点

用途

将文件标识转换为虚拟节点 (v-node)。

语法

int vfs_vget ( vfsp,  vpp,  fidp,  crp)
struct vfs *vfsp;
struct vnode **vpp;
struct fileid *fidp;
struct ucred *crp;

参数

描述
弗夫斯普 指向将包含 v-node 的虚拟文件系统。 任何返回的 V 节点都应该属于此虚拟文件系统。
弗普 指向用于返回 v 节点指针的位置。 这设置为指向新的 v-node。 此 v 节点中的字段应设置为如下所示:
v_vntype
依赖于专用数据的 v 节点的类型。
v_count
至少设置为 1 (一)。
v_pdata
如果是新文件,请设置为此文件系统的专用数据。
菲德普 指向一个文件标识。 这是特定于文件系统的文件标识,该标识必须符合 菲莱德 结构。
注: 如果 菲德普 参数无效,那么应通过 vfs_vget 入口点将 弗普 参数设置为空值。
茨尔普 点至 克雷德 结构。 此结构包含文件系统可用来验证访问许可权的数据。

描述

将调用 vfs_vget 入口点以将文件标识转换为 v-node。 此入口点使用 弗夫斯普菲德普 参数中的信息来创建 v-node 或连接到现有 v-node。 在逻辑上,此 v 节点表示与 菲德普 参数所标识的文件相同的文件系统对象。

如果 v-node 已存在,那么此入口点的成功操作将使 v-node 使用计数递增并返回指向 v-node 的指针。 如果 v-node 不存在,那么 vfs_vget 入口点将使用 vn_get 内核服务创建它,并返回指向新 v-node 的指针。

执行环境

vfs_vget 入口点只能从流程环境中调用。

返回值

描述
重大安全事件数量 指示成功。

/usr/include/sys/errno.h 文件返回非零返回值以指示失败。 典型值包括:

描述
EINVAL 指示由 弗夫斯普 参数指定的远程虚拟文件系统不支持链式安装。