Година след като се обсъждаше премахването на драйвърите за HFS и HFS+ от Linux ядрото, ситуацията изглежда коренно различна. Вместо да бъдат изоставени, старите файлови системи на Apple получават стабилна поддръжка и редовни поправки, които продължават и в цикъла за Linux Kernel 7.1.
Причината за този обрат е група разработчици, които миналата година поеха поддръжката на HFS/HFS+. Оттогава насам почти всяка версия на ядрото включва нови корекции. За Linux Kernel 7.1 пакетът е особено солиден и показва, че усилията дават резултат.
Какво е поправено този път
Кодът на драйвърите е получил множество корекции, включително такива, открити от Syzbot, както и поправки на грешки, засечени от xfstests. Работата е разпределена между четирима разработчици, а промените засягат ключови части от файловата система. Сред тях са:
- отстраняване на проблеми в логиката за създаване на map възли в xattr b-tree;
- корекции в алгоритмите за заделяне и освобождаване на b-tree възли;
- поправено поведение при обработка на грешки в hfs_bmap_free();
- предотвратяване на потенциални race условия в b-tree операциите;
- изваждане на логиката за търсене на скрити директории в отделна помощна функция;
- корекция на освободен заключен ресурс в hfsplus_fill_super();
- валидиране на bitmap-а на b-tree node 0 при mount;
- рефакториране на достъпа до map страниците и добавяне на проверка на типа възел;
- актуализиране на ctime след rename, setxattr и removexattr;
- предотвратяване на възможна корупция на Allocation File след fsync;
- поправки на няколко тестови случая от generic тестовете.
Тези промени не само подобряват стабилността, но и намаляват риска от повреда на данни, а това е ключов фактор при работа със стари файлови системи, които все още се срещат в архиви, стари носители и специализирани среди.
Поддръжката продължава въпреки остаряването на HFS/HFS+
Докато macOS отдавна е преминал към APFS, Linux продължава да поддържа HFS и HFS+ заради нуждите на потребители, които работят със стари устройства или архиви. Именно това прави Linux толкова универсална операционна система и която всъщност е единствената, която може да работи найтив върху Apple хардуер. Последните корекции показват, че поддръжката не само е жива, но и активно подобрявана. Пълният списък с промени е достъпен в изпратения pull request за Linux Kernel 7.1.
Така HFS/HFS+ се превръща в пример как общността може да вдъхне нов живот на компоненти, които иначе биха били изоставени.










