linux – 在内核模块中获取文件系统挂载点
发布时间:2020-12-14 00:34:20 所属栏目:Linux 来源:网络整理
导读:我想在我的内核模块中获取文件系统的文件系统挂载点,这是一个可堆叠的文件系统. 例如.如果/ home / ab / abc是一个文件,并且/ home安装在不同的文件系统上,我想要一个dentry或path结构到/ home. 我想在模块中执行此操作而不修改内核代码. 例如/ home / user
我想在我的内核模块中获取文件系统的文件系统挂载点,这是一个可堆叠的文件系统.
例如.如果/ home / ab / abc是一个文件,并且/ home安装在不同的文件系统上,我想要一个dentry或path结构到/ home. 我想在模块中执行此操作而不修改内核代码. 例如/ home / user /中有一个文件,现在我想知道这个文件在哪个分区.例如,此文件可能位于与“/”相同的分区中,或者此文件可能位于/ home或/ home / user上的另一个分区中. 解决方法
您可以从current->命名空间获取文件系统列表.通过迭代current-> namespace->列表(项目为struct vfsmount),您可以获取所有已安装的文件系统. vfsmount-> mnt_mountpoint是您想要的目录条目.
您可以按照打印/ proc / mounts的代码(例如base.c / mountstats_open,namespace.c / m_start)来获取更多详细信息(例如需要一些锁定). 但是,我不知道你是否可以在内核模块中执行此操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |