从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题:在直接读取操作时,也会尝试标记页面为脏,但在读取路径中不会持有Fw caps,导致在某些情况下无法获取Fw reference。 - 修复:修复了上游commit c08dfb1b49492c09cf13838c71897493ea3b424e中的问题,该问题是在获取CEPH_CAP_FILE_WR参考时设置i_head_snapc。 2. 修复历史: - 提交者:Xiubo Li - 提交时间:2024年9月5日 - 修复了上游commit:c08dfb1b49492c09cf13838c71897493ea3b424e - 审查者:Patrick Donnelly和Ilya Drymov - 签署者:Xiubo Li、Patrick Donnelly、Ilya Drymov和Sasha Levin 3. Diffstat: - 文件变化:1个文件(fs/ceph/addr.c)有1个插入和1个删除。 - Diff内容: - 原始代码:如果ci->i_wr_ref为0,则触发BUG_ON,提示调用者应持有Fw参考。 - 修改后的代码:使用spin_lock(&ci->i_ceph_lock)来锁定ci->i_ceph_lock,确保在获取Fw参考时持有正确的锁。 4. 上下文: - 上下文文件:fs/ceph/addr.c - 上下文代码:静态布尔函数ceph_dirty_folio,用于标记地址空间的映射为脏。 5. 时间戳: - 生成时间:2024年11月10日17:00:54 +0000 这些信息表明,修复了在直接读取操作中未正确持有Fw caps导致的漏洞,通过在获取Fw参考时使用spin_lock来确保正确的锁持有。