EFS & FreeVxFS File-Systems Get Booted While FailFS Merged For Linux 7.3
Linux 7.3 kernel cycle has dropped the FreeVxFS file-system driver and EFS, while adding a new pseudo file-system called FailFS.
Intelligence analysis by Llama
Linux 7.3 has removed the FreeVxFS and EFS file-systems, and introduced FailFS, a new pseudo file-system that fails every operation.
Linux 7.3 is a new version of the Linux operating system. It has removed two old file-systems called FreeVxFS and EFS, and added a new one called FailFS. FailFS is like a special file-system that always says 'no' to any request to do something with it. This is useful for developers who want to test how their programs behave when they can't do something.
Analysis
Linux 7.3 Drops FreeVxFS and EFS, Introduces FailFS
Among the early pull requests merged today by Linus Torvalds for the Linux 7.3 kernel cycle were removal of some ancient file-systems while adding in a new pseudo file-system. As expected, Linux 7.3 dropped the FreeVxFS file-system driver. This is the read-only, open-source driver use for the Veritas VxFS file-system formerly by HP-UX and SCO UnixWare. There is no real use for it in modern computing and these days just attracts attention from AI/LLM coding agents and bug checkers. This pull request now merged dropped FreeVxFS: "This removes the freevxfs driver. Providing compatibility with various old-school Unix systems from the 1990s was fun 25 years ago. Today it mostly serves as fodder for automated bug checkers. There has been only one known user and contributor in the last 15 years."
Separately was the EFS pull request to drop that read-only, on-disk format SGI used on IRIX prior to the XFS file-system. EFS had been unmaintained 20+ years. Meanwhile a new file-system driver introduced as part of Linux 7.3 is FailFS. FailFS is complementary to NULLFS that was recently merged. With FailFS, every operation reaching the file-system returns EOPNOTSUPP as the error code on Linux for operation not supported. Linux developer Christian Brauner explained in the pull request adding FailFS: "Add failfs and expose a FD_FAILFS_ROOT sentinel. This allows userspace to shed their filesystem state completely. A process with its root or working directory in failfs must anchor every path lookup at an explicit file descriptor. Absolute paths, absolute symlinks and AT_FDCWD-relative lookups simply fail. Failfs is the counterpart to nullfs. nullfs says adds a permanently empty, immutable directory whose lookups fail with ENOENT but which can be opened, read, stat'd and mounted upon. Failfs on the other hand fails every operation. The root cannot be opened at all. A single instance is mounted during early boot via kern_mount(), which makes it logically distinct from every mount namespace. This is accompanied by a new fchroot() system call which makes chrooting via a file descriptor a first class concept. It's possible to chroot into failfs as an unprivileged user provided the task has no new privileges set."
Separately as part of the series of VFS pulls, there were also NILFS2 updates for that infrequently talked about file-system. NILFS2 has switched O_DIRECT reads to using the IOmap infrastructure. Dropping EFS and FreeVxFS was around 3.7k lines of code while the simple FailFS comes in at 931 lines of code, including documentation.
Key points
- Linux 7.3 has dropped the FreeVxFS and EFS file-systems.
- A new pseudo file-system called FailFS has been introduced.
- FailFS fails every operation, making it useful for testing and debugging programs.
- The removal of FreeVxFS and EFS could lead to compatibility issues with older systems.
The introduction of FailFS could lead to new and innovative uses of the Linux kernel, such as testing and debugging programs in a controlled environment.
The removal of FreeVxFS and EFS could lead to compatibility issues with older systems that still use these file-systems, and may require additional maintenance and support.