Bei der Diskussion über die nächste Runde von Änderungen, die für die Integration in den Kernel 6.11-rc5 von Bcachefs vorgeschlagen wurden, äußerte Linus Torvalds, dass er zu bedauern beginnt, das Dateisystem Bcachefs in den Kernel aufgenommen zu haben. Torvalds' Unzufriedenheit rührt daher, dass Kent Overstreet, der Autor von Bcachefs, in der Phase der Release-Kandidaten zu umfangreiche Änderungen einreicht, die nicht nur Fehler beheben, sondern auch die Funktionalität weiterentwickeln. Dabei sind funktionale Änderungen nur in der frühen Entwicklungsphase eines neuen Branches zulässig, während in der rc5-Phase nur einzelne kleinere Änderungen akzeptiert werden sollten, deren Umfang idealerweise 100 Codezeilen nicht überschreiten sollte.
Der für Bcachefs eingereichte Patch umfasst 1309 neue Zeilen und 671 entfernte Zeilen in 39 Dateien. Neben der Behebung von Fehlern wurden zwei wesentliche Änderungen vorgenommen: die Unterstützung einer neuen Datenstruktur zur Verwaltung der Liste der freien Elemente im Cache und die Möglichkeit, Hash-Tabellen für den Cache zu konvertieren. Die neue Struktur wurde hinzugefügt, um überflüssige Cache-Sperren zu vermeiden und Situationen auszuschließen, die zu Sperrkonflikten bei Mehrfachbelastungen führen können.
Dies ist nicht der erste Fall, in dem umfangreiche Änderungen für Bcachefs nach dem Änderungsfenster eingereicht werden, und es ist nicht der erste Fall, in dem schwerwiegendere funktionale Ergänzungen anstelle einfacher Fehlerbehebungen in den endgültigen Entwicklungsphasen über Pull-Requests vorangetrieben werden. Linus Torvalds antwortete auf den eingereichten Pull-Request:
«Genug. Der letzte Pull-Request war ebenfalls umfangreich. Dieser Pull-Request ist auch zu umfangreich, betrifft Dinge, die nichts mit Bcachefs zu tun haben, und ist nicht einmal ansatzweise eine Regression. Irgendwann verwandelt sich die "Behebung von Problemen" einfach in Entwicklung, und genau an diesem Punkt sind wir. Niemand im gesunden Verstand verwendet Bcachefs und erwartet Stabilität, weshalb jeder Benutzer ein Experimentierfeld ist. Die Patches von Bcachefs haben sich zu einer Art "großer Entwicklung während des Release-Vorbereitungszyklus, anstatt davor" entwickelt, sodass ich langsam bedauere, Bcachefs akzeptiert zu haben. Wenn Bcachefs nicht ordnungsgemäß gemäß dem Entwicklungszeitplan des Haupt-(upstream) Kernels funktionieren kann, sollte es möglicherweise nicht im Hauptkernel enthalten sein. Das ist schon nicht mehr lustig.»
Kent Overstreet hat geantwortet, dass Bcachefs definitiv zuverlässiger ist als Btrfs und dass er daran arbeitet, es robuster und zuverlässiger zu machen als XFS und EXT4, insbesondere durch die Implementierung eines Mechanismus für die durchgehende Datenintegrität. Kent betonte auch, dass die vorgeschlagenen Änderungen direkt darauf abzielen, die Zuverlässigkeit zu erhöhen, und wenn Fehler in anderen Kernsubsystemen möglicherweise auf einen Absturz und Neustart beschränkt sind, ist der Preis eines Fehlers in Dateisystemen sehr hoch und kann zu versteckten Datenbeschädigungen führen, die erst Wochen später bemerkt werden können.
Torvalds wies hingegen darauf hin, dass es bislang keine großen Linux-Distributionen gibt, die Bcachefs verwenden, und er wies darauf hin, dass die Richtlinien für die Entwicklung von Kernel-Releases beachtet werden sollten, da durch derartige große Patches, die mehr als 1000 Zeilen Code enthalten, die Wahrscheinlichkeit neuer Fehler steigt. Momentan sind die diskutierten Fehlerbehebungen für Bcachefs noch nicht im Linux-Kernel angenommen worden, und der Entwickler von Bcachefs hat bisher noch keinen aktualisierten Pull-Request vorgelegt, der die neue Funktionalität entfernt und sich ausschließlich auf die Behebung von Fehlern konzentriert.
Quelle: opennet.ru
