Linux 6.19 内核移除“d_genocide ()”函数
尽管 Linux 内核在过去五年中一直奉行包容性术语指南,例如替换 master/slave、blacklist/whitelist 等词汇来避免使用带有歧视或负面含义的术语。
但令人惊讶的是,内核居然存在一个名为“种族灭绝”的函数:d_genocide ()。该函数最初提交加入内核时曾受到质疑,现在最终在 Linux 6.19 中被移除。
据介绍,d_genocide() 是当时为 dcache(目录缓存,dcache = directory cache)相关更新添加的一个函数。它的作用是“销毁某个 dentry(目录项)及其所有子项(递归地)”,也就是在文件系统卸载(umount)或清理时,强制移除某些残留的 dcache 条目。
换句话说,它是用于清理“leaked”(泄漏)或“persistent”(持久存在)的 dentry,从而避免文件系统被“挂起”的情况。
当初该名字被提出后,就有内核开发者对这个“genocide”命名提出质疑。知名 Linux 开发者 Al Viro 当时就在内核邮件列表“强烈建议移除这个名字”。
到 2025 年 12 月,随着 Linux 6.19 的合并,所有关于 “d_genocide()” 以及相关的 “DCACHE_GENOCIDE” 代码都被移除。
原来调用该函数的入口(如 kill_litter_super())也被重构:取而代之的是通过 regular 「shrink_dcache_for_umount()」来清理 dcache 中持久的 dentries。这样,“kill_litter_super()” 功能等价于之前的 “kill_anon_super()”。
所以,“genocide”这个术语仅仅是作为内部函数名使用,从未面向终端用户 —— 虽然不影响用户体验,但考虑到用词的负面联想,加上社区对包容性语言的重视,决定将其彻底移除。

