F2FS slack space recycling
F2FS slack space recycling allocates eligible free positions within an already used segment instead of requiring a fresh sequential segment.
The Linux allocation-mode declaration expands SSR as Slack Space Recycle. [5]
In the reviewed Linux v6.12/v6.16 path, __next_free_blkoff searches for a zero in the union of current-valid and checkpoint-protection maps. Current invalidity alone is insufficient. [1] [2]
With checkpointing enabled, allocation can add a protection bit before the next checkpoint; invalidation does not clear it. With checkpointing disabled, the reviewed allocation helper does not add that bit. These rules describe the bitmap guard, not whole-filesystem free capacity or a recommendation to disable checkpoints. [2]
The FAST 2015 design explains threaded logging as filling holes in used segments, with a cleaning-versus-random-write trade-off. Its historical thresholds and measurements are not current-kernel guarantees. [3]
Relations
Citations
- Linux v6.12 fs/f2fs/segment.c: update_sit_entry, __next_free_blkoff and change_curseg.
- Linux v6.16 fs/f2fs/segment.c: separate allocation/release helpers and SSR free-slot selection.
- Lee et al. (2015). F2FS: A New File System for Flash Storage, section 2.6.
- Linux v6.12 fs/f2fs/segment.h: SSR allocation mode and Slack Space Recycle.