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

如何在vfs层在linux内核中检查file对象是用于目录还是文件,linux,filesystems,kernel,vfs,Linux,Filesystems,Kernel,Vfs,如何在vfs层检查linux内核中的文件对象是用于目录还是文件 我发现有一个名为is_dx(dir)的函数可以检查这一点,但它存在于ext3或ext4中的namei.c中。我需要在独立于文件系统的vfs层执行此操作。拥有初始目录的inode,代码 检查与名字匹配的条目以获取 相应的inode q然后从磁盘读取具有该节点的目录文件并 将检查与第二个名称匹配的条目以派生 相应的inode q对路径中包含的每个名称重复此过程 dentry缓存大大加快了该过程 文件系统操作大多在dcache级别完成,因

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


我发现有一个名为
is_dx(dir)
的函数可以检查这一点,但它存在于
ext3
ext4
中的
namei.c
中。我需要在独立于文件系统的vfs层执行此操作。

拥有初始目录的inode,代码

检查与名字匹配的条目以获取

相应的inode

q然后从磁盘读取具有该节点的目录文件并

将检查与第二个名称匹配的条目以派生

相应的inode

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

dentry缓存大大加快了该过程

文件系统操作大多在dcache级别完成,因此


它们都在内核锁下

include/linux/stat.h
中定义的
S_ISDIR()
宏如何?需要
inode->i_mode
字段来检查所涉及的inode是否属于目录或文件