Linux VFS机制简析(二) (4)

d_add:将dentry加入到父目录的hash列表里,并调用d_instantiate。
d_instantiate:将dentry加入到对应的inode的hash列表里,并更新其d_inode字段。inode的引用计数i_count字段需要递增。该函数通常用于新创建inode给一个nagtive dentry。

d_lookup:根据pathname,查找父目录dentry下的某个dentry。如果找到,则增加引用计数并返回dentry。调用用完该dentry之后需要通过dput将引用计数递减。

总结

VFS的角色包括:

管理可用的文件系统类型,将设备和文件系统实例进行关联。

处理文件系统的相关操作,为应用程序提供标准文件系统接口。

VFS和具体的文件系统系统之间主要通过几个数据结构:super_block, inode, dentry, file和address space以及对应的operations: sb_ops, i_ops, d_ops, f_ops和a_ops来实现文件系统的功能。

参考

Linux Documentation: VFS

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwysp.html