EXT4 Rolls Up Some Fixes & Performance Optimizations For Linux 6.1
While there is a lot of Btrfs performance work for Linux 6.1, over on the EXT4 side it's a relatively quiet cycle. There are some bug fixes as well as some performance optimization tuning but overall nothing dramatic with EXT4 continuing to prove itself as a reliable and robust Linux file-system.
Some of the EXT4 highlights for Linux 6.1 include:
- Always enable i_version counter (as btrfs and xfs already do). Remove some uneeded i_version bumps to avoid unnecessary nfs cache invalidations.
- Wake up journal waters in FIFO order, to avoid some journal users from not getting a journal handle for an unfairly long time.
- In ext4_write_begin() allocate any necessary buffer heads before starting the journal handle.
- Don't try to prefetch the block allocation bitmaps for a read-only file system.
- Fix a number of fast commit bugs, including resources leaks and out of bound references in various error handling paths and/or if the fast commit log is corrupted.
- Avoid stopping the online resize early when expanding a file system which is less than 16TiB to a size greater than 16TiB.
- Fix apparent metadata corruption caused by a race with a metadata buffer head getting migrated while it was trying to be read.
- Mark the lazy initialization thread freezable to prevent suspend failures.
More details on the EXT4 changes for Linux 6.1 via this pull request.