【发布时间】:2012-04-16 05:09:58
【问题描述】:
如何在vfs层检查linux内核文件对象是目录还是文件?
我发现有一个名为is_dx(dir) 的函数会检查这个,但它存在于ext3 或ext4 的namei.c 中。我需要在独立于文件系统的 vfs 层 执行此操作。
【问题讨论】:
标签: linux filesystems kernel vfs
如何在vfs层检查linux内核文件对象是目录还是文件?
我发现有一个名为is_dx(dir) 的函数会检查这个,但它存在于ext3 或ext4 的namei.c 中。我需要在独立于文件系统的 vfs 层 执行此操作。
【问题讨论】:
标签: linux filesystems kernel vfs
include/linux/stat.h 中定义的S_ISDIR() 宏怎么样?它需要inode->i_mode 字段来检查有问题的inode 是否属于目录或文件。
【讨论】:
手头有初始目录的inode,代码
检查与名字匹配的条目以获取
对应的inode。
q 然后从磁盘读取具有该节点的目录文件并
检查匹配第二个名称的条目以导出
对应的inode。
q 对路径中包含的每个名称重复此过程。
dentry 缓存大大加快了进程
文件系统操作大多在dcache级别完成,所以
它们都处于内核锁定之下。
【讨论】: