美好的一天。我试图从结构文件
获取完整路径char *buf = (char*)__get_free_page(GFP_USER);
char *buf2 = (char*)__get_free_page(GFP_USER);
char *name = dentry_path(file->f_dentry, buf, PAGE_SIZE);
char *root = dentry_path(file->f_vfsmnt->mnt_mountpoint, buf2, PAGE_SIZE);
***some operations***
free_page((unsigned long)buf);
free_page((unsigned long)buf2);
kfree(*root);
kfree(*name);
但是我收到了一个错误 fs / read_write.c:707:错误:请求成员'mnt_mountpoint'不是结构或联合
如何从文件中获取vsfmount结构?
内核版本linux-2.6.37.6
答案 0 :(得分:1)
在内核2.6中,您的代码应该可以运行。
在内核3.0中,struct vfsmount
包含mnt_root
类型的成员struct dentry
我认为这会给你装载点路径。
你在使用哪个?
答案 1 :(得分:1)
根据错误判断,是否可能在f_vfsmnt
- struct中分配file
?
在这种情况下,mnt_mountpoint
字段应该可以通过file->f_vfsmnt.mnt_mountpoint
访问。