На днях вокруг обновлений в Linux 6.15-rc4 вспыхнуло горячее обсуждение. Всё началось с того, что разработчик Kent Overstreet поднял старую тему про ошибки в патчах для поддержки чувствительных к регистру файлов и папок в драйвере Bcachefs.
Мол, когда почти два года назад внедряли эту поддержку, тесты были, но… их никто толком не прогнал. Упустили. Кент честно признал:
«Одних автоматических тестов недостаточно. Нужно глазами следить за тем, что делает твой код».
И вроде бы обычная история про баги и уроки на будущее, но тут в беседу резко ворвался Линус Торвальдс. Сначала коротко ответил: «Нет». А потом выдал фирменную речь:
«Единственный урок — работники с файловой системой ничему не учатся. Чувствительные к регистру имена — это катастрофа, и вам вообще не стоило их делать. Проблема не в тестировании — проблема в том, что вы вообще это начали».
Торвальдс объяснил, что такие фичи делают систему только хуже:
«Нет правильного способа сделать это как надо. А попытки "сделать правильно" превращаются в хаос, где случайные байты вдруг обретают магическое значение».
По его мнению, тесты на проверку таких штук тоже «абсолютно поломаны» и не покрывают самых опасных сценариев — тех, которые могут привести к реальным уязвимостям. И тут началась настоящая перепалка.
Overstreet попытался парировать: мол, реальная потребность в таких каталогах всё-таки есть, и задача — не ныть, а сделать всё аккуратно и читаемо. Торвальдс не сдал позиции:
«Если бы кто-то хоть раз показал качественную реализацию, я бы, может, и передумал. Но пока вижу только плохой код, который не понимает, как работает UTF-8 и юникод».
Overstreet возразил, что опасения по поводу безопасности уже не так актуальны, ведь всё меньше используется совместный доступ к каталогам вроде /tmp. Но Торвальдс остался непреклонен.
Дальше спор скатился в детали реализации кеширования (dcache). Overstreet настаивал, что именно из-за оптимизации там и возникли проблемы. Торвальдс парировал:
«Ты явно не понимаешь, как работает dcache. Я, между прочим, большую часть этого кода писал».
Когда Kent не поверил, Линус напомнил, что писал эти части ещё в конце 90-х, и если появляются «dentry-алиасы», то «значит, ты что-то делаешь не так». В итоге Overstreet признал, что да, ошибался насчёт некоторых моментов — но сделал это, конечно, в своём стиле.
«Забавный способ сказать: "Да, Линус, ты был прав"», — подытожил Торвальдс.