我有一个需要实现的函数,它将i_nodestruct inode *)和d_entrystruct dentry *)作为输入参数。如何从这两个输入创建vfsmount

最佳答案

一般来说,你不能。vfsmount对象可用于file对象,而不可用于dentry对象(inode可被视为严格连接到dentry,因此它不会向dentry添加新内容)。
dentry对象没有vfsmount对象,普遍对应于它:它依赖于mnt_namespace对象。您可以获取当前进程的名称空间:current->nsproxy->mnt_ns,但不应在不使用namespace_sem信号量(在fs/namespace.c中声明为静态)的情况下迭代此对象中的装载。
如果您想基于文件实现一些访问策略,您可能会发现这个conversationhelpfull:
给定dentry没有规范的完整路径。
path对象有一个字段,表示对应的vfsmount对象)。

09-27 00:46