论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 6阅读
  • 0回复

[业界新闻]Linux 6.19 移除内核中具有“种族灭绝”词义的函数 [复制链接]

上一主题 下一主题
 

发帖
10344
今日发帖
最后登录
2025-12-12
只看楼主 倒序阅读 使用道具 楼主  发表于: 2025-12-11 09:14:09
  Linux内核在过去数年一直推进包容性术语改革,逐步用更中性的表述替代“master/slave”“blacklist/whitelist”等用语,但在内核代码中一直存在一个名为“d_genocide”的函数,如今终于在Linux 6.19中被移除。该函数最初在2023年随一系列dcache更新被合入主线,提交时曾在社区引发命名是否合适的讨论。 ]g>@r.Nc  
AX|-Gv  
  “d_genocide”函数的命名曾被长期内核开发者Al Viro质疑和辩护,他当时表示,该函数的意图是“把给定dentry及其所有子结点一并删除”,要为这种行为在现实世界中找到一个完全不带负面联想的词几乎不可能。该函数只在kill_litter_super中被调用,负责在特定情形下清理文件系统中“泄漏”的目录项引用,例如某些文件系统将整个目录树常驻dcache,通过额外引用计数防止正向dentry被回收,在卸载文件系统时需要一次性清掉这一批残留引用。 5 i1T?  
,tEvz  
  随着Linux 6.19合入最新补丁,这一套与“d_genocide”和“DCACHE_GENOCIDE”相关的代码已被彻底移除,取而代之的是对卸载流程的重构。根据Al Viro在合并请求中的说明,现在改由常规的shrink_dcache_for_umount统一去掉所有dentry的DCACHE_PERSISTENT标记,并在标记存在时相应减少引用计数,这样一来kill_litter_super的行为等同于kill_anon_super,再也不需要单独的“genocide”逻辑。 brQkVt_)EE  
ZOFhX$I  
  需要指出的是,“genocide”一词只存在于内核的函数名和相关标记中,从未直接呈现给终端用户。然而在Linux社区持续推进语言包容性的背景下,这样一个带有强烈负面含义的名字依然显得格格不入,因此在本次重构中一并删除也被视为与整体风格更加一致的调整。随着Linux 6.19的推进,这一历史遗留的具争议性命名正式退出内核代码。 XsldbN^ 6