Podczas dyskusji nad kolejną porcją poprawek zaproponowanych do włączenia do jądra 6.11-rc5 przez autora Bcachefs, Linus Torvalds napisał, że zaczyna żałować, że zaakceptował system plików Bcachefs w skład jądra. Niezadowolenie Torvaldsa wynika z tego, że Kent Overstreet, autor Bcachefs, na etapie kandydatów do wydania, przesyła zbyt obszerne poprawki, które w zasadzie nie tylko naprawiają błędy, ale również kontynuują rozwój funkcjonalności, podczas gdy zmiany funkcjonalne są dopuszczalne tylko na wczesnym etapie rozwoju nowej gałęzi, a na etapie rc5 akceptowane są tylko pojedyncze, niewielkie poprawki, których rozmiar nie powinien przekraczać 100 linijek kodu.
Przesłana łatka dla Bcachefs zawierała 1309 dodanych linijek i 671 usuniętych linijek w 39 plikach, poza poprawkami błędów wprowadzała dwie istotne zmiany: wsparcie dla nowej struktury danych do zarządzania listą wolnych elementów w pamięci podręcznej oraz możliwość przekształcania tabel haszowych dla pamięci podręcznej. Nowa struktura została dodana, aby pozbyć się zbędnych blokad pamięci podręcznej i wykluczyć sytuacje, które mogą prowadzić do konfliktów blokad przy obciążeniach wielowątkowych.
To nie jest pierwszy przypadek, gdy duże poprawki dla Bcachefs są przesyłane po oknie przyjmowania zmian, i to nie jest pierwszy przypadek, gdy zamiast prostych poprawek błędów promowane są cięższe dodatki funkcjonalne, wprowadzane przez prośby o wprowadzenie poprawek na końcowych etapach rozwoju nowej gałęzi. Linus Torvalds odpowiedział na przesłany pull request:
„Dość. Ostatnie zapytanie o pull również było duże. To zapytanie o pull jest również zbyt obszerne, dotyczy rzeczy, które nie mają związku z Bcachefs, a nawet nie jest w żaden sposób regresją. W pewnym momencie „naprawa czegoś” po prostu przekształca się w rozwój, i to jest właśnie ten moment. Nikt przy zdrowych zmysłach nie używa Bcachefs i nie oczekuje od niego stabilności, więc każdy użytkownik to pole eksperymentów. Łatki Bcachefs stały się swego rodzaju „wielkim rozwojem podczas cyklu przygotowań do wydania, a nie przed nimi”, do tego stopnia, że zaczynam żałować, że zaakceptowałem Bcachefs. Jeśli Bcachefs nie może działać prawidłowo zgodnie z harmonogramem rozwoju jądra upstream, może nie powinno go być w głównym jądrze. To już przekracza granice śmieszności.”
Kent Overstreet odpowiedział, że Bcachefs jest zdecydowanie bardziej niezawodne niż Btrfs i pracuje nad tym, aby uczynić je bardziej odpornym i niezawodnym niż XFS i EXT4, dzięki wdrożeniu mechanizmu integralności danych end-to-end. Kent podkreślił również, że proponowane zmiany dotyczą bezpośrednio zwiększenia niezawodności, i jeśli błąd w innych subsystemach jądra można ograniczyć do awarii i ponownego uruchomienia, to w systemach plików koszt błędu jest bardzo wysoki i może prowadzić do ukrytej korupcji danych, która może zostać zauważona dopiero po tygodniach.
Torvalds zauważył, że do tej pory nie istnieją duże dystrybucje Linuksa korzystające z Bcachefs, i wskazał, że należy przestrzegać zasad rozwoju wydań jądra Linuksa, ponieważ istnieje ryzyko wprowadzenia nowych błędów przez takie duże poprawki zawierające ponad 1000 linii kodu. Na chwilę obecną omawiane poprawki do Bcachefs nie zostały przyjęte do jądra Linuksa, a programista Bcachefs nie przygotował jeszcze zaktualizowanej wersji zapytania o pull, pozbawionej nowej funkcjonalności i skoncentrowanej tylko na poprawkach błędów.
Źródło: opennet.ru
