Tmpfs Adding Case Insensitive Support For Wine / Steam Play & Flatpaks

Written by Michael Larabel in Linux Storage on 15 November 2024 at 01:44 PM EST. 55 Comments
LINUX STORAGE
In addition to the EXT4 and XFS atomic write support, another interesting pull request sent in today by Microsoft's Christian Brauner is adding case-insensitive file/folder support for the Tmpfs file-system to benefit use-cases like Wine / Steam Play compatibility layers and sandboxing/container facilities like Flatpak.

Following file-systems like EXT4 and F2FS that have supported optional case-insensitive file/folder support, the Tmpfs file-system is now seeing similar support. As with the other file-systems, the case insensitive lookup ability is being driven in part for enhancing compatibility layers like Wine and in turn Valve's Steam Play (Proton) for better dealing with Windows software that isn't always graceful around case sensitive file-systems.

With Tmpfs being a temporary file-system residing in RAM, there are some differences in handling compared to the case folding on EXT4 and F2FS. Christian Brauner explained in the VFS Tmpfs pull request for Linux 6.13:
"This adds case-insensitive support for tmpfs.

The work contained in here adds support for case-insensitive file names lookups in tmpfs. The main difference from other casefold filesystems is that tmpfs has no information on disk, just on RAM, so we can't use mkfs to create a case-insensitive tmpfs. For this implementation, there's a mount option for casefolding. The rest of the patchset follows a similar approach as ext4 and f2fs.

The use case for this feature is similar to the use case for ext4, to better support compatibility layers (like Wine), particularly in combination with sandboxing/container tools (like Flatpak).

Those containerization tools can share a subset of the host filesystem with an application. In the container, the root directory and any parent directories required for a shared directory are on tmpfs, with the shared directories bind-mounted into the container's view of the filesystem.

If the host filesystem is using case-insensitive directories, then the application can do lookups inside those directories in a case-insensitive way, without this needing to be implemented in user-space. However, if the host is only sharing a subset of a case-insensitive directory with the application, then the parent directories of the mount point will be part of the container's root tmpfs. When the application tries to do case-insensitive lookups of those parent directories on a case-sensitive tmpfs, the lookup will fail."

Linux 6.13 is shaping up to be another feature-heavy kernel cycle and will represent the first major Linux kernel update of 2025.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week