Kernel-Log – Was 3.11 bringt (1): Dateisysteme & Storage
Das Anlegen temporärer Dateien wird mit Linux 3.11 sicherer. NFS unterstützt jetzt SELinux und das Cluster-Dateisystem Lustre hat es trotz einiger Querelen in den Staging-Bereich geschafft.
- Thorsten Leemhuis
Die Entwicklung von Linux 3.11 scheint trotz Ferienzeit auf der Nordhalbkugel mit dem üblichen Tempo voranzugehen. Beim vierten, am Sonntag freigegeben RC gab es indes wieder mehr Änderungen, als Torvalds lieb ist. Die haben sich aber auf mehr Bereiche verteilt als zuvor; Torvalds begrüßte das, nachdem er die anderen Kernel-Entwickler beim RC3 noch für ein hohes Patch-Aufkommen kritisiert hatte.
Alle größeren Neuerungen von Linux 3.11 haben Torvalds und seine Mitstreiter wie gewohnt in den ersten zwei Wochen nach Freigabe der Version 3.10 in den Kernel integriert. Linux 3.11 befindet sich daher jetzt in der Stabilisierungsphase, in der umfangreiche Änderungen die Ausnahme sind. Wir können daher bereits jetzt einen umfassenden Überblick über die wichtigsten Neuerungen geben, die der in der ersten Septemberhälfte erwartete Kernel 3.11 bringen wird.
Den Anfang der auf eine Artikelserie verteilten Beschreibung macht eine Übersicht zu den Neuerungen rund um Dateisysteme und Storage-Hardware; in den nächsten Wochen folgen Artikel zur Grafiktreibern, Netzwerk-Unterstützung, Kernel-Infrastruktur, Prozessor/Plattform-Unterstützung und Treibern für andere Hardware.
Dateisysteme
Mit Hilfe des neuen Flags O_TMPFILE für die Funktionsaufrufe open und openat können Anwendungen temporäre Dateien anlegen, die im Dateisystem nicht sichtbar sind (u. a. 1, 2, 3). Das kann Symlink-Attacken und einige andere Tricks unterbinden, die Angreifer gelegentlich nutzen, um sich höhere Rechte zu verschaffen.
Der Ext4-Code erhielt unter anderem eine Änderung, die das Locking an einer Stelle optimiert, die zuletzt leicht zum Flaschenhals wurde. Btrfs erhielt die "gewohnte Mischung" aus Fehlerkorrekturen, Aufräumarbeiten und Optimierungen; darunter Anpassungen, damit das Dateisystem nicht verfrüht meldet, dass ihm der Speicherplatz ausgegangen ist.
Mit Hilfe eines neuen Label-Typs unterstützt der Server- und Client-Code für die vierte Generation des Network File System (NFS) jetzt Security Label. Dadurch lassen sich nun auch auf NFSv4 die Sicherheitskontext-Informationen für SELinux speichern.
Einige Änderungen am CIFS-Code verbessern die SMB3-Unterstützung.
F2FS, das bei Linux 3.8 eingeführte Flash Friendly File System, unterstützt jetzt Security Labels und eignet sich so für den Einsatz mit Sicherheitssoftware wie AppArmor, SELinux, Smack und TOMOYO.
Das bei vielen Supercomputern der Top-500-Liste eingesetzte Cluster-Dateisystem Lustre ist in den Staging-Bereich des Kernels eingeflossen; dort liegt unreifer Code, der die Qualitätsansprüche der Kernel-Entwickler nicht erfüllt. Wie Commits und ein schnippischer Google-Plus-Kommentar von Greg Kroah-Hartman zeigen, hat das vor einem Jahr in Intels Hände gelangte Dateisystem tatsächlich noch das ein oder andere Problem.
Storage
Zum Device-Mapper ist unter anderem das Target dm-switch gestoßen – ein Multipath-Framework für Storage Arrays, die die Pfade zu den verschiedenen Speicherbereichen dynamisch konfigurieren.
Die kleinen Perlen
Die kleinen Perlen
Einige weitere für Sie vielleicht interessante Neuerungen liefert die folgenden Liste mit den englischen Commit-Überschriften ausgewählter Änderungen, die es in den beschriebenen Kernel-Subsystemen gab. Wie viele Verweise im vorangegangenen Text verlinken die Einträge auf das Webfrontend des von Linus Torvalds gepflegten Git-Zweigs auf Kernel.org. Der über diese Links angezeigte Commit-Kommentar und der darunter ausgegebene Patch liefern Hintergrundinformationen zur jeweiligen Änderung.
File systems
- [
] Add SMB3.02 dialect support - [
] Add some missing SMB3 and SMB3.02 flags - [
] allow O_TMPFILE to work with O_WRONLY - [
1] Btrfs: introduce per-subvolume delalloc inode list - [
1] Btrfs: introduce per-subvolume ordered extent list - [
] Btrfs: introduce qgroup_ulist to avoid frequently allocating/freeing ulist - [
] Btrfs: make backref walking code handle skinny metadata - [
] btrfs: show compiled-in config features at module load time - [
1] Btrfs: simplify unlink reservations - [
] Btrfs: update new flags for tracepoint - [
] cifs: add a "nosharesock" mount option to force new sockets to server to be created - [
C 1] [CIFS] SMB3 Signing enablement - [
1] cifs: track the enablement of signing in the TCP_Server_Info - [
D] documentation: document the is_dirty_writeback aops callback - [
D] documentation: update address_space_operations - [
D 3] Don't pass inode to ->d_hash() and ->d_compare() - [
] ext3 ->tmpfile() support - [
] ext4: defer clearing of PageWriteback after extent conversion - [
1] ext4: make punch hole code path work with bigalloc - [
] ext4: reduce object size when !CONFIG_PRINTK - [
4] ext4: restructure writeback path - [
] ext4: ->tmpfile() support - [
D] f2fs: add remount_fs callback support - [
] freezer: add unsafe versions of freezable helpers for NFS - [
C N] fs/9p: xattr: add trusted and security namespaces - [
6] FS-Cache: Fix object state machine to have separate work and wait states - [
1] GFS2: Add atomic_open support - [
] hpfs: implement prefetch to improve performance - [
2] jbd2: transaction reservation support - [
2] jfs: Update jfs_error - [
C] Kconfig: Add Kconfig entry for Labeled NFS V4 client - [
D] locks: add a new "lm_owner_key" lock operation - [
D 2] locks: protect most of the file_lock handling with i_lock - [
] net/fs: change busy poll time accounting - [
1] NFS: Add label lifecycle management - [
] NFS: Apply v4.1 capabilities to v4.2 - [
C] NFSv4.2: Added NFS v4.2 support to the NFS client - [
D] pagemap: prepare to reuse constant bits with page-shift - [
D 1] [readdir] introduce iterate_dir() and dir_context - [
D] [readdir] ->readdir() is gone - [
] udf: provide ->tmpfile() - [
1] vmcore: allocate ELF note segment in the 2nd kernel vmalloc memory - [
] vmcore: support mmap() on /proc/vmcore - [
D] xfs: disable noattr2/attr2 mount options for CRC enabled filesystems - [
] xfs: Introduce ordered log vector support - [
2] xfs: rework remote attr CRCs - [
DN1] xfs: update mount options documentation
Storage support
- [
C N] ahci_imx: add ahci sata support on imx platforms - [
] bcache: Advertise that flushes are supported - [
] bcache: Improve lazy sorting - [
D] bcache: Refresh usage docs - [
N1] bcache: Track dirty data by stripe - [
3] bfa: Add dynamic diagnostic port support - [
D] blk-throttle: implement proper hierarchy support - [
C 5] BusLogic: Port driver to 64-bit. - [
1] cxgb4i: add support for T5 adapter - [
] dm: optimize reorder structure - [
2] dm: optimize use SRCU and RCU - [
D] DM RAID: Add ability to restore transiently failed devices on resume - [
DN] Documentation/devicetree: Add DT bindings for UFS host controller - [
] iscsi-target: Add demo-mode TPG authentication context support - [
D] libata: Add atapi_dmadir force flag - [
C] libata: make it clear that sata_inic162x is experimental - [
] libiscsi: Added new boot entries in the session sysfs - [
] libsas: implement > 16 byte CDB support - [
] md/raid10: fix bug which causes all RAID10 reshapes to move no data. - [
] md/raid10: fix two bugs affecting RAID10 reshape. - [
] md/raid5: allow 5-device RAID6 to be reshaped to 4-device. - [
D] MD: Remember the last sync operation that was performed - [
I 1] megaraid_sas: Add support for Extended MSI-x vectors for 12Gb/s controller - [
I 1] megaraid_sas: Add support for MegaRAID Fury (device ID-0x005f) 12Gb/s controllers - [
I 3] megaraid_sas: Add support for Uneven Span PRL11 - [
] megaraid_sas: Add support to differentiate between iMR vs MR Firmware - [
I] megaraid_sas: Add support to display Customer branding details in syslog - [
D] megaraid_sas: Changelog and driver version update - [
C N] partitions: add aix lvm partition support files - [
C] rapidio: add modular build option for the subsystem core - [
C 4] rapidio: convert switch drivers to modules - [
D] rapidio: documentation update - [
C] rapidio/switches: remove tsi500 driver - [
C] rsxx: Changing the adapter name to the official name. - [
D] sata highbank: add bit-banged SGPIO driver support - [
2] scsi constants: command, sense key + additional sense strings - [
] storvsc: Implement multi-channel support - [
] storvsc: Support FC devices - [
N1] target: Add tracepoints for SCSI commands being processed - [
] zfcp: module parameter dbflevel for early debugging - [
3] zfcp: remove access control tables interface
Ein "C" im Bereich "[ ]" kennzeichnet Commits mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten. Mit "I" ausgezeichnete Patches rüsten neue PCI- oder USB-IDs nach; jene mit "D" verändern die dem Kernel beiliegende Dokumentation; Commits mit "N" legen neue Dateien an. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: Eine "1" kennzeichnet Patches, die inklusive Kommentar zwischen 10 und 20 KByte groß sind; Patches mit einer "9" sind 90 KByte oder größer.
Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt. (thl) (thl)