从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题:在使用DAX(Direct Access)时,如果写入的块大小超过了inode的大小,可能会导致fsck失败。 - 原因:DAX_io_map_rw()函数在每个迭代中执行两项操作:映射已写入的块并复制用户数据到块。如果进程在写入过程中被用户杀死,复制的数据将被返回并添加到inode的大小中,导致写入的块大小可能超过inode的大小。 2. 修复措施: - 解决方案:通过在写入过程中检查写入长度是否小于预期的inode大小,如果小于,则截断块。 - 代码修改: - 添加了一个新的函数 ,用于在DAX写入操作完成后清理inode。 - 修改了 函数,确保在写入操作完成后调用 。 3. 补丁细节: - 补丁位置:在 文件中。 - 补丁内容: - 添加了新的函数 。 - 修改了 函数,确保在写入操作完成后调用 。 4. 补丁状态: - 状态:已提交到内核稳定分支。 - 作者:Zhihao Cheng。 - 审查:由Jan Kara和Theodore Ts'o审查。 5. 相关链接: - Bugzilla链接:https://bugzilla.kernel.org/show_bug.cgi?id=219136 - 补丁链接:https://patchwork..kernel.org/patch/20240809121532.2105494-1-chengzhihao@huaweicloud.com 这些信息表明,该漏洞与DAX写入操作时的inode大小管理有关,并通过修改内核代码来解决这个问题。