Nearly one year ago to the day I noted Linux developers were considering the removal of the Apple HFS and HFS+ file-system drivers from the kernel. They were orphaned the past decade and turning into a maintenance burden for upstream developers. But then to some surprise, a few developers stepped up to maintain the HFS(+) drivers. One year later it’s proving to be a success story with more fixes for this aging Apple file-system support continuing.
After developers last year stepped up to maintain the HFS/HFS+ drivers so they could remain in the mainline kernel, we’ve been seeing an assortment of fixes almost each kernel cycle. With Linux 7.1 and now one year later, there is a hearty batch of fixes on the way to the mainline tree.
The HFS/HFS+ file-system driver code saw several fixes for issues raised by Syzbot. Plus some xfstests failures were also addressed. The fixes from four developers included:
“- hfsplus: fix generic/642 failure
– hfsplus: rework logic of map nodes creation in xattr b-tree
– hfsplus: fix logic of alloc/free b-tree node
– hfsplus: fix error processing issue in hfs_bmap_free()
– hfsplus: fix potential race conditions in b-tree functionality
– hfsplus: extract hidden directory search into a helper function
– hfsplus: fix held lock freed on hfsplus_fill_super()
– hfsplus: fix generic/523 test-case failure
– hfsplus: validate b-tree node 0 bitmap at mount time
– hfsplus: refactor b-tree map page access and add node-type validation
– hfsplus: fix to update ctime after rename
– hfsplus: fix generic/533 test-case failure
– hfsplus: set ctime after setxattr and removexattr
– hfsplus: fix uninit-value by validating catalog record size
– hfsplus: fix potential Allocation File corruption after fsync”
All the details can be found via the HFS pull request for Linux 7.1. So with this maintenance work continuing, the Apple HFS/HFS+ file-system support is going strong in the mainline kernel even with macOS just focused on the Apple File System (APFS) these days.
