d_hash函数是如何调用到dentry->d_hash函数的,展示一下调用路径
时间: 2024-06-06 07:07:53 浏览: 105
sha-1.rar_ HASH_SHA_hash_hash SHA_sha-256
d_hash函数是在文件系统中的inode和dentry之间建立映射关系时使用的函数。在Linux内核中,dentry结构体中有一个d_hash函数指针,指向了文件系统实现中的d_hash函数。当VFS需要建立inode和dentry之间的映射关系时,会调用d_hash函数。
调用路径如下:
1. 当用户调用open()等系统调用时,VFS会从super_block开始查找文件系统,并调用文件系统的get_sb()函数进行挂载。
2. 在文件系统挂载完成后,用户调用的系统调用会通过VFS找到对应的inode,然后通过inode获取对应的dentry。
3. 在获取dentry时,VFS会调用文件系统实现中的d_hash函数指针,执行d_hash函数,生成dentry的hash值。
4. VFS会使用hash值在dentry缓存中查找是否存在对应的dentry。如果存在,则直接返回;如果不存在,则需要创建一个新的dentry并插入缓存中。
5. 最后,VFS会将inode和dentry建立映射关系,并返回dentry给用户程序。
阅读全文