De Linux-kernel heeft de afgelopen jaren inclusieve terminologiehervormingen gepromoot, waarbij termen als "master/slave" en "blacklist/whitelist" geleidelijk zijn vervangen door meer neutrale uitdrukkingen. Er is echter altijd een functie geweest met de naam "d_genocide()" in de kernelcode, die uiteindelijk is verwijderd in Linux 6.19. Deze functie werd oorspronkelijk samengevoegd met de hoofdlijn met een reeks dcache-updates in 2023. Toen deze werd ingediend, leidde dit tot een discussie in de gemeenschap over de vraag of de naamgeving passend was.

afbeelding.webp

De naamgeving van de functie "d_genocide()" werd in twijfel getrokken en verdedigd door de oude kernelontwikkelaar Al Viro. Hij verklaarde destijds dat het de bedoeling van de functie was om "de gegeven dentry en al zijn kinderen samen te verwijderen". Het is bijna onmogelijk om een ​​realistisch woord voor dit gedrag te vinden dat geen negatieve associaties heeft. Deze functie wordt alleen aangeroepen in kill_litter_super() en is onder bepaalde omstandigheden verantwoordelijk voor het opschonen van "gelekte" directory-invoerreferenties in het bestandssysteem. Sommige bestandssystemen bevinden zich bijvoorbeeld in de volledige directorystructuur in de dcache en voorkomen dat voorwaartse dentry wordt gerecycled door extra referentietellingen. Deze batch resterende verwijzingen moet in één keer worden gewist wanneer het bestandssysteem wordt ontkoppeld.

Met de nieuwste patch van Linux 6.19 is deze set codes gerelateerd aan "d_genocide()" en "DCACHE_GENOCIDE" volledig verwijderd en vervangen door een reconstructie van het verwijderingsproces. Volgens de instructies van Al Viro in het samenvoegverzoek wordt nu de reguliere krimp_dcache_for_umount() gebruikt om op uniforme wijze de DCACHE_PERSISTENT-markering van alle dentries te verwijderen en het aantal referenties dienovereenkomstig te verminderen wanneer de markering bestaat. Op deze manier is het gedrag van kill_litter_super() gelijkwaardig aan kill_anon_super(), en is er geen noodzaak voor aparte "genocide"-logica.

Opgemerkt moet worden dat het woord "genocide" alleen voorkomt in de functienamen en gerelateerde tags van de kernel, en nooit rechtstreeks aan eindgebruikers wordt gepresenteerd. Maar nu de Linux-gemeenschap taalinclusiviteit blijft bevorderen, lijkt zo'n naam met een sterke negatieve connotatie nog steeds niet op zijn plaats, dus het schrappen ervan in deze refactoring wordt ook gezien als een aanpassing die meer consistent is met de algemene stijl. Met de vooruitgang van Linux 6.19 is deze historisch controversiële naam officieel uit de kernelcode verwijderd.