免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3300 | 回复: 6
打印 上一主题 下一主题

如何由dentry来获取其全路径的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-12 08:36 |只看该作者 |倒序浏览
在vfs_mkdir中,如何才能由该文件夹对于的dentry来获取其全路径呢?
利用d_parent向上查找时,遇到文件挂接点就结束了,我要获取的是从根目录"/"开始的全路径

刚才一不小心发错了位置,悬赏帖位置:http://linux.chinaunix.net/bbs/thread-1061739-1-1.html

论坛徽章:
0
2 [报告]
发表于 2009-02-12 09:11 |只看该作者

回复 #1 canjian 的帖子

找struct vfsmount *mnt

再调用__d_path就可以了

论坛徽章:
0
3 [报告]
发表于 2009-02-12 10:17 |只看该作者

回复 #2 lonelyair 的帖子

d_path我知道!
但是我不知道 从dentry如何找到其对应的struct vfsmount *mnt结构,请问如何才能关联回去呢?

[ 本帖最后由 canjian 于 2009-2-12 10:58 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-02-12 15:30 |只看该作者
原帖由 canjian 于 2009-2-12 10:17 发表
d_path我知道!
但是我不知道 从dentry如何找到其对应的struct vfsmount *mnt结构,请问如何才能关联回去呢?


mnt->mnt_sb  与dentry->d_sb 相关联

用d_path的时候也先要找到“/"的mnt

[ 本帖最后由 lonelyair 于 2009-2-12 15:31 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-02-12 20:40 |只看该作者

回复 #4 lonelyair 的帖子

还是不明白!在vfs_mkdir中,只有dentry,怎么得到该dentry所在的vfs_mount结构信息呢?

由d_sb关联不到mnt_sb上去啊

论坛徽章:
0
6 [报告]
发表于 2009-02-12 20:47 |只看该作者
原帖由 canjian 于 2009-2-12 20:40 发表
还是不明白!在vfs_mkdir中,只有dentry,怎么得到该dentry所在的vfs_mount结构信息呢?

由d_sb关联不到mnt_sb上去啊





你查查d_sb 与mnt_sb是不是都是super_block
struct vfsmount {
    struct list_head mnt_hash;
    struct vfsmount *mnt_parent;    /* fs we are mounted on */
    struct dentry *mnt_mountpoint;    /* dentry of mountpoint */
    struct dentry *mnt_root;    /* root of the mounted tree */
    struct super_block *mnt_sb;    /* pointer to superblock */



从“/”的mnt->mnt_sb查找与dentry->d_sb相同的super_block块相对应的mnt就是要找的vfsmount,然后再用__d_path。
我想这次应该说清楚了吧。

[ 本帖最后由 lonelyair 于 2009-2-12 20:57 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-02-13 09:16 |只看该作者

回复 #6 lonelyair 的帖子

多谢兄弟!

[ 本帖最后由 canjian 于 2009-2-13 09:48 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP