返回上一页  首页 | cnbeta报时: 04:26:22
Linux 6.19 移除内核中具有“种族灭绝”词义的函数
发布日期:2025-12-10 20:59:21  稿源:cnBeta.COM

Linux 内核在过去数年一直推进包容性术语改革,逐步用更中性的表述替代“master/slave”“blacklist/whitelist”等用语,但在内核代码中一直存在一个名为“d_genocide()”的函数,如今终于在 Linux 6.19 中被移除。该函数最初在 2023 年随一系列 dcache 更新被合入主线,提交时曾在社区引发命名是否合适的讨论。

image.webp

“d_genocide()”函数的命名曾被长期内核开发者 Al Viro 质疑和辩护,他当时表示,该函数的意图是“把给定 dentry 及其所有子结点一并删除”,要为这种行为在现实世界中找到一个完全不带负面联想的词几乎不可能。该函数只在 kill_litter_super() 中被调用,负责在特定情形下清理文件系统中“泄漏”的目录项引用,例如某些文件系统将整个目录树常驻 dcache,通过额外引用计数防止正向 dentry 被回收,在卸载文件系统时需要一次性清掉这一批残留引用。

随着 Linux 6.19 合入最新补丁,这一套与“d_genocide()”和“DCACHE_GENOCIDE”相关的代码已被彻底移除,取而代之的是对卸载流程的重构。根据 Al Viro 在合并请求中的说明,现在改由常规的 shrink_dcache_for_umount() 统一去掉所有 dentry 的 DCACHE_PERSISTENT 标记,并在标记存在时相应减少引用计数,这样一来 kill_litter_super() 的行为等同于 kill_anon_super(),再也不需要单独的“genocide”逻辑。

需要指出的是,“genocide”一词只存在于内核的函数名和相关标记中,从未直接呈现给终端用户。然而在 Linux 社区持续推进语言包容性的背景下,这样一个带有强烈负面含义的名字依然显得格格不入,因此在本次重构中一并删除也被视为与整体风格更加一致的调整。随着 Linux 6.19 的推进,这一历史遗留的具争议性命名正式退出内核代码。

我们在FebBox(https://www.febbox.com/cnbeta) 开通了新的频道,更好阅读体验,更及时更新提醒,欢迎前来阅览和打赏。
查看网友评论   返回完整版观看

返回上一页  首页 | cnbeta报时: 04:26:22

文字版  标准版  电脑端

© 2003-2025