【发布时间】:2012-03-25 01:25:44
【问题描述】:
在 Linux 内核中:我有一个目录的文件(即“结构文件”)。我们称它为 f_child。我需要父目录的文件引用。
我目前正在这样检索这个:
1) 从 f_dentry->d_parent 和 f_child 的 f_vfsmnt 创建一个“结构路径”。当然,我会检查 d_parent 是否为非空。
2) 使用 d_path 获取 f_child 的父级的路径(即字符串,而不是结构路径...一个 char *),传入我们从步骤 1 中检索到的路径。
3) 将该字符串传递给 filp_open,它会返回我想要的结构文件 *。
它似乎工作。我担心我在第 1 步所做的假设,即父母和孩子的 vfs 安装将是相同的。那会在某个时候咬我吗?有没有更好的方法来做到这一点?显然,我不太了解 vfs 安装结构。属于同一个超级块的所有dentries 是否具有相同的vfs mount?
顺便说一句:我期待并感谢在内核中打开文件的指责,但我正在做的事情确实需要它。 :)
谢谢!
【问题讨论】:
标签: linux-kernel