News: 0001627087

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

exFAT For Linux 7.1 Helps Reduce File Fragmentation, Fixes

([Linux Storage] 6 Hours Ago exFAT)


The exFAT file-system changes have landed for the in-development [1]Linux 7.1 kernel.

The improvements for this Microsoft exFAT file-system driver implementation include FALLOC_FL_ALLOCATE_RANGE for helping to reduce file fragmentation. There are also optimizations and various fixes. It's not the most active cycle for exFAT but includes:

- Implement FALLOC_FL_ALLOCATE_RANGE to add support for preallocating clusters without zeroing, helping to reduce file fragmentation.

- Add a unified block readahead helper for FAT chain conversion, bitmap allocation, and directory entry lookups.

- Optimize exfat_chain_cont_cluster() by caching buffer heads to minimize mark_buffer_dirty() and mirroring overhead during NO_FAT_CHAIN to FAT_CHAIN conversion.

- Switch to truncate_inode_pages_final() in evict_inode() to prevent BUG_ON caused by shadow entries during reclaim.

- Fix a 32-bit truncation bug in directory entry calculations by ensuring proper bitwise coercion.

- Fix sb->s_maxbytes calculation to correctly reflect the maximum possible volume size for a given cluster size, resolving xfstests generic/213.

- Introduced exfat_cluster_walk() helper to traverse FAT chains by a specified step, handling both ALLOC_NO_FAT_CHAIN and ALLOC_FAT_CHAIN modes.

- Introduced exfat_chain_advance() helper to advance an exfat_chain structure, updating both the current cluster and remaining size.

- Remove dead assignments and fix Smatch warnings.

The full list of patches can be found via [2]the pull request that is already merged to Linux Git.

Also light on the file-system side for Linux 7.1 was the [3]XFS merge with no new features and just bug fixes and code refactoring.



[1] https://www.phoronix.com/search/Linux+7.1

[2] https://lore.kernel.org/lkml/CAKYAXd8_XL8XqEa5t9H_0mvRBu8WRhNhkphRWUoR+8zbkukNQg@mail.gmail.com/

[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b0128e64af056a7dd29fa3bc780af654e53f861



It must be remembered that there is nothing more difficult to plan, more
doubtful of success, nor more dangerous to manage, than the creation of
a new system. For the initiator has the enmity of all who would profit
by the preservation of the old institutions and merely lukewarm defenders
in those who would gain by the new ones.
-- Niccolo Machiavelli, 1513