dentry只存在于内存中,存放在名为dentry_cache的slab分配器高速缓存中

dentry_cache简称dcache,中文名称是目录项高速缓存,是Linux为了提高目录项对象的处理效率而设计的。它主要由两个数据结构组成:

1、哈希链表dentry_hashtable:dcache中的所有dentry对象都通过d_hash指针域链到相应的dentry哈希链表中。

2、未使用的dentry对象链表dentry_unused:dcache中所有处于unused状态和negative状态的dentry对象都通过其d_lru指针域链入dentry_unused链表中。该链表也称为LRU链表。

目录项高速缓存dcache是索引节点缓存icache的主控器(master),也即dcache中的dentry对象控制着icache中的inode对象的生命期转换。无论何时,只要一个目录项对象存在于dcache中(非negative状态),则相应的inode就将总是存在,因为 inode的引用计数i_count总是大于0。当dcache中的一个dentry被释放时,针对相应inode对象的iput()方法就会被调用。

怎样从inode值得到目录名?

函数得到当前文件或目录的inode值后,进入dcache查找对应的dentry,然后顺着父目录指针d_parent得到父目录的dentry,这样逐级向上直到dentry = root,就得到全部目录名称。

linux dentry 存储,dentry与dentry_cache相关推荐

  1. Linux系统存储交换机日志

    Linux系统存储交换机日志     日志记录是为系统设备在运行过程中报告其运行情况而设的, 为了保证系统正常运行, 解决每一天可能遇到的各种各样的问题, 网络管理员必须认真地读取日志记录.目前公司系 ...

  2. ceph存储原理_赠书 | Linux 开源存储全栈详解——从Ceph到容器存储

    // 留言点赞赠书我有书,你有故事么?留言说出你的存储故事留言点赞前两名,免费送此书截止日期12.27号12.30号公布名单 // 内容简介 本书致力于帮助读者形成有关Linux开源存储世界的细致的拓 ...

  3. Linux系统存储之LVM

    Linux系统存储之LVM 1.lvm存在意义及名词解释 - lvm存在意义: 解决存储容量的问题: - 图解lvm如何解决存储容量的问题 - 名词解释 2.lvm的建立 pvcreate----&g ...

  4. Linux开源存储全栈详解:从Ceph到容器存储

    内容简介 本书致力于帮助读者形成有关Linux开源存储世界的细致的拓扑,从存储硬件.Linux存储堆栈.存储加速.存储安全.存储管理.分布式存储.云存储等各个角度与层次展开讨论,同时对处于主导地位的. ...

  5. Linux 磁盘- 存储

    目录 原笔记链接(推荐看这个) Linux 磁盘| 存储 存储介质的概念 单位概念 Linux文件系统 Linux系统结构 Linux磁盘路径与命名规则 Linux磁盘命令规则 Linux分区命名 L ...

  6. Linux中存储设备的命名规则

    Linux中存储设备的命名规则 1.以设备名命名 linux对IDE设备以hd命名 linux对SCSI设备以sd命名 2.以分区命名 例如:第一块IDE设备接口磁盘的第 1 个分区地址为 /dev/ ...

  7. Linux存储自定义sn方案,linux的存储搭建

    1.首先建立raid 5: mdadm --create --auto=yes /dev/md[0-9] --raid-device=N --level=[015] --spare-device=N ...

  8. 获取服务器保存图片的位置,linux服务器存储图片路径

    linux服务器存储图片路径 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 如 ...

  9. 怎么修改服务器图片存储路径,linux服务器存储图片路径

    linux服务器存储图片路径 内容精选 换一换 本节操作介绍在Windows和Linux环境中使用SSH密钥对方式登录Linux裸金属服务器的操作步骤.裸金属服务器状态必须为"运行中&quo ...

最新文章

  1. 肠里细菌“肚里蛔虫”:肠脑研究缘何越来越热
  2. 67.数据库系统的三级模式
  3. pycharm 怎么对代码进行性能分析,消耗时间time (Run -- Profile 'xxxx')
  4. Swift之深入解析如何自定义操作符
  5. Solr-4.10.2安装
  6. 下面可提供安全电子邮件服务的是()【最全!最详细解析!!】
  7. 【转】4.2使用jQuery.form插件,实现完美的表单异步提交
  8. 面向对象语言的技术特点
  9. linux生成大文件
  10. 快速排序思路(挖坑版),代码实现
  11. keil内存溢出表现_详细讲解C语言五大内存分区与可执行程序的三段(Text段、Date段、Bss段)【建议收藏】...
  12. Ajax请求中async属性
  13. Oracle_视图_索引_plsql_游标_存储过程_存储函数_触发器
  14. 我不应该用计算机做题,中考答题涂卡必须用2B铅笔,看到电脑扫描的试卷,才明白有多重要...
  15. 中国移动企业文化考试试题含答案
  16. 中华文字改革第一人——仓颉
  17. JAVA共享图片管理系统毕业设计 开题报告.
  18. 研发项目wbs分解简单案例_工程项目管理之WBS分解实例(五篇模版)
  19. 大学英语 unit 2 第五题
  20. Python学习Day01

热门文章

  1. 狂潮微课表示-怎么做免费的百度爱采购推广
  2. asp.net使用httphandler打包多CSS或JS文件以加快页面加载速度
  3. .Net读取XP文件夹中的Thumbs.db文件
  4. CWDM/DWDM是城域网最好的选择吗?
  5. 部署SD-WAN后网络安全挑战仍然存在—Vecloud
  6. sql根据某个字段拼接另外字段
  7. [USACO1.4]等差数列 Arithmetic Progressions
  8. 关于打印机共享的注意事项——又被叫去修电脑了
  9. vue init深度定制团队自己的Vue template
  10. Swift中GCD与NSOperation相关