You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用kern_path获取挂载点devt异常:首次挂载返回根设备问题求助

内核挂载后kern_path获取错误设备号问题

在LSM钩子中尝试通过kern_path()获取挂载点的devt,场景如下:

/dev/mmcblk0p5 挂载到 /mnt/photos

预期调用:

kern_path("/mnt/photos", ...)

返回的struct path中,path.mnt->mnt_sb->s_dev应为0x0b300005(对应/dev/mmcblk0p5的设备号179:5),但首次挂载后实际总是得到根文件系统的设备号0x0b300002(179:2)。只有**再次将/dev/mmcblk0p5挂载到/mnt/photos**后,kern_path才会返回正确的0x0b300005。

该问题在4.14和5.15内核版本中均会出现。

补充信息:

  • 首次挂载后,path.mnt->mnt_sb的地址与根目录"/"的地址相同(对应0x0b300002)
  • 第二次挂载后,path.mnt->mnt_sb的地址则不同

推测mnt_sb会在首次与第二次挂载之间的某个时间点更新,请问:

  1. 这个更新何时发生?
  2. 如何能在更新后获得通知/钩子?

内容的提问来源于stack exchange,提问作者Dekel N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:07:42