gpt4 book ai didi

linux - 在内核模块中获取文件系统挂载点

转载 作者:IT王子 更新时间:2023-10-29 01:02:11 25 4
gpt4 key购买 nike

我想在我的内核模块中获取文件系统的文件系统挂载点,这是一个可堆叠的文件系统。例如。如果/home/ab/abc 是一个文件并且/home 挂载在不同的文件系统上,我希望有一个到/home 的 dentry 或路径结构。我想在不修改内核代码的情况下在模块中执行此操作。例如/home/user/中有一个文件,现在我想知道这个文件在哪个分区中。例如,此文件可能位于与“/”相同的分区中,或者此文件可能位于挂载在/home 或/home/user 上的另一个分区中。

最佳答案

您可以从current->namespace 获取文件系统列表。通过迭代current->namespace->list(项目是struct vfsmount)你可以得到所有挂载的文件系统。 vfsmount->mnt_mountpoint 是你想要的目录入口。

您可以按照打印/proc/mounts的代码(例如base.c/mountstats_opennamespace.c/m_start)来获取更多详细信息(例如,需要一些锁定)。

不过,我不知道您是否可以在内核模块中执行此操作。

关于linux - 在内核模块中获取文件系统挂载点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8702261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com