El kernel de Linux ha estado promoviendo reformas terminológicas inclusivas en los últimos años, reemplazando gradualmente términos como "maestro/esclavo" y "lista negra/lista blanca" por expresiones más neutrales. Sin embargo, siempre ha habido una función llamada "d_genocide()" en el código del kernel, que finalmente se eliminó en Linux 6.19. Esta función se fusionó originalmente con la línea principal con una serie de actualizaciones de dcache en 2023. Cuando se envió, desencadenó una discusión en la comunidad sobre si el nombre era apropiado.

imagen.webp

El nombre de la función "d_genocide()" fue cuestionado y defendido por el veterano desarrollador del kernel Al Viro. Afirmó en ese momento que la intención de la función era "eliminar el dentry dado y todos sus hijos juntos". Es casi imposible encontrar una palabra en el mundo real para este comportamiento que no tenga asociaciones negativas. Esta función solo se llama en kill_litter_super() y es responsable de limpiar las referencias de entradas de directorio "filtradas" en el sistema de archivos bajo ciertas circunstancias. Por ejemplo, algunos sistemas de archivos residen en todo el árbol de directorios en el dcache y evitan que se recicle el dentry directo mediante un recuento de referencias adicional. Este lote de referencias residuales debe borrarse de inmediato cuando se desmonta el sistema de archivos.

Con el último parche de Linux 6.19, este conjunto de códigos relacionados con "d_genocide()" y "DCACHE_GENOCIDE" se eliminó por completo y se reemplazó por una reconstrucción del proceso de desinstalación. De acuerdo con las instrucciones de Al Viro en la solicitud de fusión, el sistema Shrink_dcache_for_umount() normal ahora se usa para eliminar uniformemente la marca DCACHE_PERSISTENT de todas las dentries y reducir el recuento de referencias en consecuencia cuando la marca existe. De esta manera, el comportamiento de kill_litter_super() es equivalente al de kill_anon_super(), y no hay necesidad de una lógica de "genocidio" separada.

Cabe señalar que la palabra "genocidio" sólo existe en los nombres de funciones del núcleo y en las etiquetas relacionadas, y nunca se presenta directamente a los usuarios finales. Sin embargo, a medida que la comunidad Linux continúa promoviendo la inclusión del lenguaje, un nombre con una fuerte connotación negativa todavía parece fuera de lugar, por lo que su eliminación en esta refactorización también se considera un ajuste más consistente con el estilo general. Con el avance de Linux 6.19, este nombre históricamente controvertido se ha retirado oficialmente del código del kernel.