F2FS gains sub-page block support for 16KB Android kernels
Google's Daeho Jeong posted a 20-patch series so existing 4KB F2FS images can mount on kernels whose page size is larger than the filesystem block size.
F2FS can now mount and use filesystems whose block size is smaller than the kernel page size, removing a hard requirement that had blocked Android devices moving from 4KB-page to 16KB-page kernels.
Daeho Jeong of Google posted the 20-patch series on the Linux kernel list. Until now F2FS insisted that the on-disk block size equal PAGE_SIZE. A userdata partition formatted with 4KB blocks therefore could not be mounted once the device booted a 16KB-page kernel, even though the on-disk layout itself was unchanged. The series lifts that restriction while leaving the disk format alone.
The work builds on earlier large-folio support. When a single folio holds several filesystem blocks, F2FS tracks uptodate and dirty state per block rather than per page, and the read, write, garbage-collection, mmap, fallocate, swap, verity, atomic-write, and compression paths all operate in block units. When the block size still equals PAGE_SIZE the behavior is unchanged aside from incidental fixes that also help large folios.
The practical payoff is Android userdata migration: devices can keep their existing 4KB F2FS images while adopting 16KB pages for performance and memory-management gains. Compressed and atomic files needed extra care in subpage mode; the series brings those features along rather than leaving them disabled.