如何在vfs层检查linux内核文件对象是用于目录还是文件

时间:2012-04-16 05:09:58

标签: linux filesystems kernel vfs

如何在vfs层检查linux内核文件对象是用于目录还是文件?

我发现有一个名为is_dx(dir)的函数会对此进行检查,但它会出现在namei.cext3的{​​{1}}中。我需要在 vfs层执行此操作独立于文件系统。

2 个答案:

答案 0 :(得分:2)

S_ISDIR()中定义的include/linux/stat.h宏怎么样?需要inode->i_mode字段来检查有问题的inode是否属于目录或文件。

答案 1 :(得分:0)

拥有初始目录的inode,代码

检查与第一个名称匹配的条目以获取

对应的inode。

q然后从磁盘和

读取具有该节点的目录文件

检查匹配第二个名称的条目以导出

对应的inode。

q对路径中包含的每个名称重复此过程。

dentry缓存大大加快了程序的速度

文件系统操作主要在dcache级别完成,所以

他们都在内核锁定下。