主要观点:介绍了 Linux v6.9 中引入的listmount(2)
和statmount(2)
系统调用,用于与挂载进行交互,通过新的 64 位挂载 ID 操作,且新 ID 不回收且唯一,旧 ID 经常回收且最大值为INT_MAX
,新 ID 从INT_MAX + 1
开始。详细说明了statmount(2)
可获取挂载详细信息,listmount(2)
可递归获取子挂载列表,还介绍了获取挂载命名空间 ID 的ioctl(2)
及相关操作,最后给出了一个遍历所有挂载的示例程序。
关键信息:
listmount(2)
和statmount(2)
系统调用及相关结构struct mnt_id_req
和struct statmount
。listmount(2)
的递归、遍历所有挂载命名空间等功能及相关参数和标志。- 用于获取挂载命名空间 ID 的
NS_MNT_GET_INFO
等nsfs ioctl(2)
。 - 示例程序展示如何遍历所有挂载及相关系统调用和函数。
重要细节: struct mnt_id_req
的各个字段含义及版本化。statmount(2)
的mask
字段的各个选项含义。listmount(2)
默认按先后顺序返回挂载及LISTMOUNT_REVERSE
改变顺序的情况。- 遍历挂载时需有
CAP_SYS_ADMIN
权限,示例程序中的各种系统调用和函数的使用及参数设置等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。