Kent Overstreet, le développeur du système de fichiers Bcachefs, a proposé des correctifs permettant au noyau Linux de travailler avec le système de fichiers Bcachefs même après l'endommagement d'un volume substantiel de métadonnées, en reconstruisant si nécessaire les arbres B endommagés à partir des métadonnées des structures inode et dirent. Les modifications ont été acceptées par Linus Torvalds et intégrées dans la mise à jour de test actuelle du noyau 6.9-rc3.
Les changements permettent de monter des systèmes de fichiers endommagés et d'accéder à toutes ou presque toutes les données du système de fichiers affectées par la récente erreur qui a conduit à la destruction du système de fichiers. L'erreur se manifestait lorsqu'une tentative de mise à jour des structures du système de fichiers était entreprise après la mise à jour des outils, mais que cette mise à jour n'était pas terminée, ce qui amenait alors le noyau avec l'ancienne implémentation de Bcachefs à tenter de rétrograder la version des structures, ignorant la mise à jour inachevée. Une telle situation conduisait à un "mode cerveau divisé", où aucune des opérations ne pouvait être complétée et où les structures b-tree du système de fichiers n'étaient plus cohérentes avec le contenu réel.
Le correctif mentionné permet de continuer à fonctionner même dans de tels cas. Parmi les limitations de la technologie, il est mentionné que, lors de la présence de snapshots, l'arbre B des snapshots doit être présent et en bon état.
Source : opennet.ru
