从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题:vfs: Don't evict inode under the inode lru traversing context - 描述:在inode reclaiming过程中,如果inode被标记为I_FREEING,其他进程可能会被卡住,因为inode reclaiming过程会尝试获取这些inode。如果inode lookup在inode lru traversing过程中进行,可能会导致死锁。 2. 案例分析: - 案例1:在ext4文件系统中,如果ea_inode特性被启用,inode lookup可能会在inode lru traversing过程中被卡住。 - 案例2:在ubifs文件系统中,inode deletion过程可能会与inode reclaiming过程发生竞争,导致死锁。 3. 解决方案: - 解决方案:通过引入新的inode状态标志I_LRU_ISOLATING,可以在inode reclaiming过程中将inode锁定在内存中,而不是使用普通的inode引用。这样可以避免死锁。 4. 代码更改: - 文件:fs/inode.c - 更改内容:在inode_lru_list_del函数中添加了新的状态标志I_LRU_ISOLATING,并在inode_pin_lru_isolating和inode_unpin_lru_isolating函数中进行了相应的处理。 5. 补丁应用: - 补丁应用:通过引入新的状态标志和相应的函数处理,可以在inode reclaiming过程中避免死锁。 这些信息表明,该漏洞与inode reclaiming过程中的死锁问题有关,通过引入新的状态标志和函数处理,可以解决这个问题。