Linux 6.19 內核移除“d_genocide ()”函數

新聞
HongKong
10
06:32 PM · Dec 10 ,2025

儘管 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”這個術語僅僅是作為內部函數名使用,從未面向終端用户 —— 雖然不影響用户體驗,但考慮到用詞的負面聯想,加上社區對包容性語言的重視,決定將其徹底移除。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.