在 FreeBSD 10.2 中读取或写入时从 nullfs 中获取 inode 编号

Get inode number from inside nullfs while reading or writing in FreeBSD 10.2

我正在尝试加密和解密文件,因为它们通过 nullfs 进行读取和写入,但我需要 inode 编号才能 encrypt/decrypt。我正在修改 /usr/src/sys/fs/nullfs/null_vnops.c 中的 null_open 并试图在结构 vop_open_args *ap 中找到索引节点号 但我找不到从结构中获取 inode 编号的方法。有什么办法吗?谢谢。

我知道怎么做了。我添加了'

MALLOC_DECLARE(M_ATTR);
MALLOC_DEFINE(M_ATTR,"vattr","attribute in null_open");

在包含和

之后到文件顶部
    struct vattr *outStuff = malloc(sizeof(struct vattr), M_ATTR, M_ZERO);
    VOP_GETATTR(vp,outStuff,ap->a_cred );
    printf("uid = %d fileid = %ld \n", outStuff->va_uid,outStuff->va_fileid);
    free(outStuff,M_ATTR);

在null_open中从函数参数访问inode。