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

Two call flows show repeated single-cluster allocation on one side and a single multi-cluster request on the other, alongside abstract storage cells.

The patch lists 12 benchmark cases. These are the largest and smallest reported improvements:

Test caseFiles and size per fileFAT32 cluster sizeSynchronous mountLoop time beforeLoop time afterReported improvementSamples
Highest16 × 16 MiB4,096 bytesYes92.489 s0.348 s265.4×10
Lowest128 × 16 KiB512 bytesNo1.287 ms0.241 ms5.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.