Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1455426
  • 博文数量: 209
  • 博客积分: 464
  • 博客等级: 下士
  • 技术积分: 3772
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 18:25
个人简介

阿弥陀佛

文章分类

全部博文(209)

文章存档

2019年(3)

2018年(5)

2017年(6)

2016年(10)

2015年(9)

2014年(73)

2013年(90)

2012年(13)

分类: 服务器与存储

2014-05-27 22:00:04

 所有的目录项都放入到全局缓存hashtable中。
d_hash(parent,hash)根据上一级目录和当前目录名称的哈希值,从hashtable中找到所需要的rentry,从而找到相应的inode
struct rentry{
int inode;
ptr_t *d_name;
struct rentry *parent;

}

do_lookup 这个函数实现了查找具体的目录路径的核心代码。
qstr的作用是快速的匹配当前的目录是否与某个dentry是否为相同的目录。省去了strcmp的开销。如果哈希值不相同,那么两个字符串肯定不相同,用哈希值做一个粗略的比较。如果两个目录的dentry的名字相同,而且他们具有相同的父dentry,那么这两个目录就是两个相同的目录。
struct qstr {
unsigned int hash;
unsigned int len;
const unsigned char *name;
};

阅读(1024) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~