Linux内核dentry和inode

时间:2011-01-07 05:39:16

标签: linux linux-kernel

是否可以从给定的dentry和inode构造绝对路径?

全部谢谢

3 个答案:

答案 0 :(得分:1)

如果您有struct path(或可以构建一个),请查看tomoyo如何执行此操作:    http://lxr.linux.no/linux+v2.6.37/security/tomoyo/realpath.c#L86

答案 1 :(得分:1)

看看dentry_path()。它将填充缓冲区,其路径为mount的根目录。要继续经过那里,你需要遍历文件的f_vfsmount并且mnt_parent,直到你到达文件系统的真正根目录。

答案 2 :(得分:1)

是的,只有一个dentry就够了,回过dentry-> parent。 当你遇到一个挂载点时要小心,对于linux支持"一个dentry挂载多个设备" ......好吧,它很容易编码,只需切换到vfsmnt-> mnt_parent。

BTW:我经常感到困惑,为什么linux使用字段构建mountpoint-linklist" mnt_parent"而不是" mnt_child",在写这个答案时,我似乎猜错了。