Linux 6.8引入新的系统调用以获取更详细的文件系统挂载信息

2024年 1月 16日 60.2k 0


在开始时合并回Linux 6.8合并窗口是VFS挂载API更新,它引入了两个新的系统调用:statmount()和listmount(),用于读取有关文件系统挂载的更多详细信息。

新的statmount()和listmount()系统调用源于围绕可靠地检索挂载信息以及引入新的64位挂载ID的持续讨论

微软的Linux工程师克里斯蒂安·布劳纳解释了新的系统调用:

Statmount()模仿了statx()的语义,并公开了一组标志,用户空间可以在mnt_id_req中引发这些标志来请求要检索的特定信息。Statmount()调用返回一个结构statmount,其中填充了有关所请求的挂载的信息。支持的请求通过在struct statmount的@MASK参数中提升在struct mnt_id_req中传递的请求标志来指示。目前,我们确实支持:

* STATMOUNT_SB_BASIC:

基本文件系统信息。

*STATMOUNT_MNT_BASIC

装载信息(装载ID、父装载ID、装载属性等)。

*STATMOUNT_PROPROCATE_FROM

从当前命名空间中装载的内容进行传播。

* STATMOUNT_MNT_ROOT

装载的根目录的路径(例如mount--绑定/bla/mnt返回/bla)。

*STATMOUNT_MNT_POINT

挂载点的路径(例如,mount--绑定/bla/mnt返回/mnt)。

* STATMOUNT_FS_TYPE

由于子装载,文件系统类型的名称作为幻数是不够的。

..。

与statmount()一样,通过mnt_id_req为listmount()提供了一个64位的挂载id。它需要一个缓冲区和一个大小来返回请求装载的子装载的64位ID数组。因此,用户空间可以选择分批检索装载的子装载,或者迭代通过子装载。对于大多数用例,只需为几个子装载留出空间就足够了。但对于较大的装载表,使用迭代器确实很有帮助。

那些对Linux6.8中引入的新的statmount和listmount系统调用感兴趣的人可以通过这一拉力.

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论