In addition to introducing nullfs and the OPEN_TREE_NAMESPACE support for containers, there were also a number of other interesting VFS updates merged on Monday for the Linux 7.0 kernel.
The VFS adaptations around using the __rust_helper for being able to better handle Rust with LTO kernel builds were among the dozen pull requests merged on Monday for the Virtual File System area of the kernel.
Linux 7.0 is also removing the deprecated Linuxrc-based initrd code path and related dead code. This code was deprecated since 2020 and now being dropped complete. This doesn’t impact Initramfs support and if any real-life regressions are discovered this code removal can be reverted.
There is also a pull request to better support non-blocking timestamps. That pull explains:
“Since 66fa3cedf16a (“fs: Add async write file modification handling.”) file_update_time_flags() unconditionally returns -EAGAIN when any timestamp needs updating and IOCB_NOWAIT is set. This makes non-blocking direct writes impossible on file systems with granular enough timestamps, which in practice means all of them.
This series reworks the timestamp update path to propagate IOCB_NOWAIT through ->update_time so that file systems which can update timestamps without blocking are no longer penalized.”
Another notable change for Linux 7.0 is generic I/O error reporting to user-space. That new standardized I/O error reporting is explained as:
“Filesystems currently have no standard mechanism for reporting metadata corruption and file I/O errors to userspace via fsnotify. Each filesystem (xfs, ext4, erofs, f2fs, etc.) privately defines EFSCORRUPTED, and error reporting to fanotify is inconsistent or absent entirely.
This series introduces a generic fserror infrastructure built around struct super_block that gives filesystems a standard way to queue metadata and file I/O error reports for delivery to fsnotify. Errors are queued via mempools and queue_work to avoid holding filesystem locks in the notification path; unmount waits for pending events to drain. A new super_operations::report_error callback lets filesystem drivers respond to file I/O errors themselves (to be used by an upcoming XFS self-healing patchset).”
The VFS misc pull also brings some performance improvements. A rework to PID allocation can improve thread creation/teardown throughput by 10~16% dependent on false-sharing luck. Improvements to tracking file lock presence improved performance by 4~16% on a open-in-a-loop benchmark. There is also fixes to some 100% misspredicted paths and other fixes.
See all 12 pull requests touching VFS for the Linux 7.0 merge window via the Linux kernel mailing list.
