Kernel Log: Coming in 2.6.36 (Part 2)
File systems, networking and storage
by Thorsten Leemhuis
2.6.36 offers VFS optimisations, has returned to integrating Ext3 file systems with "data=ordered" by default and can store data from shared Windows or Samba disks in local cache to improve performance. Numerous new and improved drivers enhance the kernel's storage and network hardware support.
During the hours of Monday night and Tuesday morning, Greg Kroah-Hartman released the stable kernels 126.96.36.199, 188.8.131.52 and 184.108.40.206. These bring small improvements and bug fixes – including some to close the recently disclosed vulnerability that could allow an unprivileged user to gain root access.
Shortly after and a day late, Linus Torvalds, issued the fifth pre-release version of next month's forthcoming Linux version 2.6.36. The Kernel Log takes the release of RC5 as an opportunity to continue its "Coming in 2.6.36" mini series to describe the advancements in terms of file systems and storage infrastructure as well as storage and network drivers. Part 1 of the series described the changes in the graphics hardware area; in the coming weeks, further articles will discuss the kernel's USB drivers, FireWire, V4L/DVB etc as well as the changes to the architecture code and infrastructure.
When releasing Linux 2.6.35, Linus Torvalds already expressed the hope that, in 2.6.36, he would integrate various patches developed by Nick Piggin to optimise many aspects of the Virtual File system Layer (VFS), which offers basic file system functionality. These "VFS scalability patches" are designed to improve the scalability of VFS and considerably speed up its performance when handling various tasks, especially on the now ubiquitous multi-processor systems.
Piggin has worked on these major and far from simple changes for quite some time, and his changes have already been tested in the real-time ("RT") tree. However, the developer thought that some of the most promising changes weren't ready for inclusion, and therefore only submitted a selection of his patches – these were integrated into the main development branch via the VFS maintainer a short time later, although Torvalds had already released the first RC of 2.6.36 a few days before and the merge window had officially been closed (for instance, 1, 2, 3, 4). The remaining changes are to be subjected to further testing and will probably be integrated into Linux 2.6.37.
Some background information about Piggin's patch collection can be found in the article "Increasing VFS scalability" published on LWN.net last autumn; a detailed description of the changes that have now been integrated is available in "VFS scalability patches in 2.6.36", which was published in August.
The kernel has returned to integrating Ext3 file systems in "data=ordered" mode in its default configuration. This mode offers more data security than the "writeback" option – which the kernel developers integrated as the default in 2.6.30 because it is similar to that used in Ext4 and promises to improve performance. In the Ext4 superblock code, the developers have now reserved various fields for the externally developed Next3 file system, an Ext3-based file system which offers snapshots and has been described in more detail on LWN.net.
By using FS-Cache, the CIFS file system can now store shared Windows or Samba data in local cache to speed up the repeated access to this data. The kernel developers have extracted the CIFS code for domain name resolution so that it can also be used by other file systems. The client code for version 4 of the NFS file system is no longer classified as "experimental"; the NFS 4.1 client retains this rating, but its "developer only" warning has been removed. The Squashfs file system used in the live media of many distributions now supports LZO compression, which is known for its fast decompression.
Christoph Hellwig writes in his XFS status update for August 2010 that various changes to the XFS code are to improve code performance in a number of places. The 9p file system now also supports the Linux variant of the 9P2000 protocol, which is also known as 9P2000.L. Information on further file system changes can be found in the Git-Pull requests for Ceph, Fuse, NILFS2 and OCFS2. In this development cycle the developers made no major changes to Btrfs.