Deleting a big file froze the desktop for seconds: ext2 FreeBlock did 4
synchronous disk I/Os per data block (bitmap + BGDT read/write), and the
file manager deleted single files inline on the desktop main thread.
- Ext2: batch block frees per block group; keep the bitmap resident,
clear bits in memory, flush bitmap + BGDT once per group transition.
Also covers the truncate-on-overwrite path.
- Ext2: refuse to mount volumes with block size > 4096; temp buffers
throughout the driver are single 4 KiB pages, so larger blocks would
overflow them (our mkfs always uses 4K).
- Files: route single-file deletes past 4 MiB to the background worker
+ progress dialog; refuse (instead of stalling inline) when another
file operation already owns the worker.
Co-Authored-By: Claude Fable 5 <[email protected]>