- 论坛徽章:
- 16
|
30可用积分
本帖最后由 embeddedlwp 于 2012-05-04 11:23 编辑
link_path_walk函数的部分代码:- 716 hash = init_name_hash();
- 717 do {
- 718 name++;
- 719 hash = partial_name_hash(c, hash);
- 720 c = *(const unsigned char *)name;
- 721 } while (c && (c != '/'));
- 722 this.len = name - (const char *) this.name;
- 723 this.hash = end_name_hash(hash);
- 749 /*
- 750 * See if the low-level filesystem might want
- 751 * to use its own hash..
- 752 */
- 753 if (nd->dentry->d_op && nd->dentry->d_op->d_hash) {
- 754 err = nd->dentry->d_op->d_hash(nd->dentry, &this);
- 755 if (err < 0)
- 756 break;
- 757 }
复制代码 这里的dentry对象本来就是VFS层的东东,而且这个散列表散也是由VFS层维护,为什么还要low-level filesystem来创建dentry hash ? |
|