d_hash函数是如何调用到dentry->d_hash函数的
时间: 2024-06-11 21:09:25 浏览: 144
glusterfs的那些事-3.4.51
在Linux内核中,dentry结构体中有一个指向d_hash函数的函数指针。这个函数指针可以指向不同的d_hash函数,具体是哪个函数取决于文件系统实现。当创建一个新的dentry时,文件系统会调用自己的d_hash函数来计算这个dentry的哈希值,并将这个哈希值存储在dentry结构体中。当需要查找一个dentry时,文件系统会调用系统提供的d_lookup函数,并将要查找的dentry的哈希值作为参数传递给d_lookup函数。d_lookup函数会在哈希表中查找这个dentry,并返回它的指针。因此,d_hash函数在文件系统实现中的调用方式如下:
1. 文件系统实现定义自己的d_hash函数。
2. 当创建一个新的dentry时,文件系统会调用自己的d_hash函数来计算这个dentry的哈希值,并将这个哈希值存储在dentry结构体中。
3. 当需要查找一个dentry时,文件系统会调用系统提供的d_lookup函数,并将要查找的dentry的哈希值作为参数传递给d_lookup函数。
4. d_lookup函数会在哈希表中查找这个dentry,并返回它的指针。
阅读全文