是否可以从给定的dentry和inode构造绝对路径?
全部谢谢
答案 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",在写这个答案时,我似乎猜错了。