• 全部
  • 问答

Linux中关于dentry的弱智问题,求大侠高手来点拨下

土豆 2003-12-15 10:40:08
dentry中象d_hash,d_lru这样的列表,它的类型为
struct list_head {struct list_head *next, *prev;};
没有一个指向对象本身的指针,那在使用的时候如何根据d_hash找到对象自己?
我的意思是,我觉得lish_head应该有个象owner一样的指针,在初始化的时候将其指向自己
dentry* entry = d_alloc(……..);
entry->d_hash->owner = entry;
这样,在后面的使用中才可以通过ower得到entry本身
小弟没搞懂,哪个懂的来点拨下,为什么没有实现这样的机制?
...全文
19 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
土豆 2003-12-15
呵呵,谢谢啦
回复
CoolQ 2003-12-15
如果用你说的owner之类的指针,需要单独的空间。
而用list_entry的话,就不需要,而且因为编译器的优化做的已经足够好,所以效率和用owner指向自己是一样的.
而且在C中,很少有在结构体中用指针指向自己的,C++倒是有个this
回复
土豆 2003-12-15
高层的东西用惯了,都OO什么的,对这些底层的奇技淫巧很难理解
回复
暗黑帝国 2003-12-15
学习
回复
土豆 2003-12-15
唉,还是我自己来回答:
通过 list_entry宏可以实现从d_hash之类的东东得到dentry本身
回复
发帖
Linux_Kernel
创建于2007-08-27

4087

社区成员

Linux/Unix社区 内核源代码研究区
申请成为版主
帖子事件
创建了帖子
2003-12-15 10:40
社区公告
暂无公告