Phoronix reported on October 29, 2026, that a FAT-driver change had been merged into Linux 7.4 that week. The change batches cluster allocation in the FALLOC_FL_KEEP_SIZE path. Its largest reported gain, 265.4×, came from a specific preallocation benchmark by patch author Matheus Alves de Almeida.
How the FAT32 allocation change works
When fallocate() reserves disk space with FALLOC_FL_KEEP_SIZE, it leaves the file’s reported size unchanged. In the FAT driver’s fat_fallocate() growth path, the patch replaces repeated one-cluster allocation calls with one fat_add_clusters() call that passes the requested cluster count.
The patch is dated October 12, 2026. Matheus Alves de Almeida said batching could combine FAT updates on synchronous mounts, where each cluster allocation had otherwise been handled synchronously.
The test behind the 265.4× result
The peak result came from a loop that called fallocate() for 16 files, each 16 MiB, on FAT32 with 4,096-byte clusters and a synchronous mount. The loop’s total time fell from 92.489 seconds to 0.348 seconds, a reported 265.4× improvement averaged across 10 samples.
The patch specifies QEMU/KVM, a virtio-blk device, and cache=none for its benchmark setup. The timings below are totals for the loop, not times per file.
The highest and lowest cases in the test matrix
The patch lists 12 benchmark cases. These are the largest and smallest reported improvements:
| Test case | Files and size per file | FAT32 cluster size | Synchronous mount | Loop time before | Loop time after | Reported improvement | Samples |
| Highest | 16 × 16 MiB | 4,096 bytes | Yes | 92.489 s | 0.348 s | 265.4× | 10 |
| Lowest | 128 × 16 KiB | 512 bytes | No | 1.287 ms | 0.241 ms | 5.3× | 10 |
The 5.3× result is the minimum among those 12 cases. The author-reported gains were especially large on synchronous mounts, where the patch could batch FAT updates rather than synchronously handling each cluster allocation separately.
What the benchmark says about file copying
The timed workload repeatedly preallocated space with fallocate() and FALLOC_FL_KEEP_SIZE. It measured that allocation path; it did not measure ordinary file-copy, read, or write throughput. The 265.4× figure therefore describes that particular benchmark configuration, not a general FAT32 transfer-speed result.