Software RAID and device mapper
The kernel code for software RAID now offers bad block management for RAID levels 1, 4, 5 and 6. This detects and avoids known bad areas on the RAID disks (see e.g. 1, 2, 3). It does not work for MD arrays which use MD metadata version 0.90 and it requires the development version 3.3 of userland tool mdadm. Some pointers on this can be found in an email and patch review for Linux 3.1 from MD maintainer Neil Brown.
Version 3.1 of disk encryption system dm-crypt is able to forward discard commands to the underlying disk. This is useful for SSDs, as it allows them to be informed of freed blocks via ATA trim, improving both speed and lifespan. For security reasons – to prevent attackers from being able to make inferences from the extent of disk use – this function is deactivated by default.
The Device mapper is now able to access RAID 1 functions in the MD code and supports storage of metadata on a dedicated storage device – these 'metadata devices' can improve error handling and integrity checking.
In Brief
Filesystems
- The HFS Plus code now supports storage devices with a capacity in excess of 2 TB.
- Like NT-based Windows systems, Linux 3.1 will be able to save files of up to four gigabytes in size on FAT16 drives of the same size, if they use a cluster size of 64 KB.
- The new SEEK_HOLE and SEEK_DATA VFS functions are able to find large memory areas populated entirely by zeroes within files.
- Ecryptfs now supports encrypted keys.
- The parallel NFS (pnfs) code can now handle IPv6.
Storage
- The latest version of losetup can use the new '/dev/loop-control' device to generate or remove loop devices dynamically; the previous standard procedure of allocating a specific number of loop devices using kernel/module parameters can now be discarded.
- The bfa driver now supports the Brocade 1860 Fabric Adapter.
- In an article entitled 'Avoiding the OS abstraction trap' on LWN.net, Intel developer Dan J. Williams explores some of the difficulties he and his colleagues faced working on the isci driver. The isci driver, which supports the SAS controller in Intel's C600 server and workstation chipset, was merged into the kernel in Linux 3.0, after it had been substantially reworked by Intel developers. The need to rework the driver arose because parts of it were initially conceived as operating system-independent, as a result of which they did not interpolate well into Linux. Experienced SCSI developers had consequently initially declined to merge it.
Minor gems
Many further minor, but by no means insignificant, changes can be found in the list below, which contains the commit headers referring to the respective change. Like many of the references in the text above, the links point to the relevant commit in the web front end of the Git branch for the "official" kernel sources maintained by Linus Torvalds at kernel.org. The commit comments available at these links and the patches themselves provide extensive further information on the respective changes.
Every link is preceded by various letters and numbers in square brackets. The letter "C" identifies patches that modify Kconfig files, which contain the help texts and configuration options displayed by "make menuconfig", "make xconfig" and similar tools during kernel configuration. "D" is used for patches that modify the documentation available under Documentation/ in the kernel branch. "N" identifies changes which create a new file. The numbers provide a rough idea of the patch size: For instance, "1" is used for changes between 10 and 20 KBytes including comment, "2" for patches between 20 and 30 KBytes; changes without a number are less than 10 KBytes, while patches marked "9" are 90 KBytes or more.
- [
- [
- [
2
] dlm: use workqueue for callbacks - [
3
] exofs: ios: Move to a per inode components & device-table - [
N4
] exofs: Rename raid engine from exofs/ios.c => ore - [
N3
] ext3: Add fixed tracepoints - [
D
] ext3/ext4 Documentation: remove bh/nobh since it has been deprecated - [
- [
- [
- [
D 6
] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers - [
D 3
] fs: take the ACL checks to common code - [
N1
] jbd: Add fixed tracepoints - [
D 1
] locks: rename lock-manager ops - [
D
] nfsd4: update nfsv4.1 implementation notes - [
CD 4
] nfsd: Remove deprecated nfsctl system call and related code. - [
1
] NFS: Parse and store all multipath DS addresses - [
C
] ore: Make ore its own module - [
D
] ->permission() sanitizing: document API changes - [
D 1
] ->permission() sanitizing: don't pass flags to ->check_acl() - [
D 2
] ->permission() sanitizing: don't pass flags to ->permission() - [
C N1
] pnfsblock: add blocklayout Kconfig option, Makefile, and stubs - [
- [
D
] Squashfs: Update documentation for XZ and add squashfs-tools devel tree - [
D
] superblock: add filesystem shrinker operations - [
N1
] superblock: introduce per-sb cache shrinker infrastructure - [
C
] tmpfs: expand "help" to explain value of TMPFS_POSIX_ACL - [
D
] UBIFS: lessen amount of debugging check types - [
D 1
] UBIFS: switch self-check knobs to debugfs - [
D
] vfs: increase shrinker batch size - [
- [
- [
- [