从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题描述:在EXT4_IOC_MIGRATE ioctl被设置为需要同步更新时,文件描述符以O_SYNC模式打开。这可能导致jbd2_log_wait_commit函数调用jbd2_might_wait_for_commit函数,如果EXT4_IOC_MIGRATE与write(2)系统调用发生竞争,可能会导致死锁。 - 触发条件:只有在CONFIG_PROVE_LOCKING被启用时才会触发此问题。在这种情况下,jbd2_might_wait_for_commit宏会锁定jbd2_handle,同时i_data_sem也被锁定。这会导致lockdep因为jbd2_journal_start函数也可能锁定相同的jbd2_handle。 - 发现者:Linux Verification Center (linuxtesting.org) 通过syzkaller发现。 2. 修复措施: - 代码更改:在ext4_ind_migrate函数中,将解锁顺序从先解锁i_data_sem再解锁handle改为先解锁handle再解锁i_data_sem。 - 代码差异: 3. 审查和签名: - 审查者:Ritesh Harjani (IBM)、Mikhail Ukhin、Artem Sadovnikov。 - 签署者:Mikhail Ukhin、Artem Sadovnikov、Theodore Ts'o、Sasha Levin。 4. 链接: - 上游提交:https://lore.kernel.org/stable/20240404095000.5872-1-mish.uxin2012%40yandex.ru - 补丁链接:https://patch-msgid.link/20240829152210.2754-1-ancowi69@gmail.com 这些信息详细描述了漏洞的触发条件、影响、修复措施以及审查过程,有助于理解漏洞的背景和修复方法。