从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 描述:在Btrfs文件系统中,当使用subpage和zoned模式时,如果在extent_write_locked_range()函数内部清除脏页,可能会导致在卸载时出现rsv数据泄漏。 - 工作负载:通过特定的命令序列,可以触发这个漏洞。 2. 漏洞原因: - 描述:在缓冲写操作后,直接IO写操作开始时,由于范围[680K, 780K]覆盖了上述脏页的开始部分,需要将两个页面写回704K和768K。 - 详细解释:在写回768K时,由于zoned设备的最大分区大小为64K,系统有64K页面大小,导致在写回768K时,清除其脏页标志,但子页范围[820K, 832K]仍然脏。 3. 修复方法: - 描述:修复方法是不要在extent_write_locked_range()函数内部清除脏页。 - 详细解释:修复后的正确轨迹将不会清除脏页,从而避免了数据泄漏。 4. 代码更改: - 描述:代码更改涉及在extent_write_locked_range()函数内部删除清除脏页的代码行。 - 详细解释:修复后的代码如下: 5. 审查和签名: - 描述:代码更改已经经过Johannes Thumshirn、Qu Wenruo、David Sterba和Sasha Levin的审查和签名。 这些信息详细描述了漏洞的触发条件、原因、修复方法以及代码更改,有助于理解漏洞的性质和修复过程。