从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 描述:在Btrfs文件系统中,当使用subpage和zoned模式时,如果在extent_write_locked_range()函数内部清除脏页,可能会导致在卸载时出现rsv数据泄漏。 - 工作负载:通过特定的命令序列,可以触发这个漏洞。 2. 漏洞原因: - 描述:在缓冲写操作后,直接IO写操作开始时,由于范围[680K, 780K]覆盖了上述脏页的开始部分,需要将两个页面写回704K和768K。 - 详细解释:在写回768K时,由于zoned设备的最大分区大小为64K,系统有64K页面大小,导致在写回768K时,清除其脏页标志,但子页范围[820K, 832K]仍然脏。 3. 漏洞影响: - 描述:这个漏洞只影响subpage和zoned模式。对于非subpage和zoned模式,我们为每个页面只有一个扇区,因此没有此类部分脏页的情况。 - 详细解释:对于subpage和非zoned模式,我们从未进入run_delalloc_cow(),并且通常所有脏subpage范围都会在__extent_writepage_io()中正确提交。 4. 修复方法: - 描述:修复方法是不要在extent_write_locked_range()函数内部清除脏页。 - 详细解释:通过在__extent_writepage_io()中进行更准确的、子页兼容的清除操作,可以避免这个问题。 5. 审查和签名: - 描述:这个补丁已经经过Johannes Thumshirn、Qu Wenruo、David Sterba和Sasha Levin的审查和签名。 6. Diffstat: - 描述:补丁文件中有一个文件发生了更改,增加了4行代码,删除了3行代码。 通过这些信息,我们可以理解这个漏洞的背景、原因、影响以及修复方法。