Kernel-Log – Was 2.6.38 bringt (2): Dateisysteme
Seite 2: SquashFS, UDF, Fallocate und NFS
SquashFS, UDF, Fallocate und NFS
Das von vielen Linux-Distributionen für Live- und Installationsmedien verwendete Dateisystem SquashFS unterstützt ab 2.6.38 die Komprimierung der Dateisystem-Images mit dem aus LZMA hervorgegangenen Kompressionsformat XZ (1, 2). Da das für sehr hohe Packdichten bekannt ist, dürften einige Live-Medien in Zukunft Platz für ein paar Programme mehr als zuvor bieten. Die Fedora-Entwickler wollen es bei der im Mai erwarteten Version 15 einsetzen und geben an, dass eine Live-DVD mit Spielen bei der Komprimierung mit XZ rund 8 Prozent kleiner ausfiel. Für manche Distributionen ist die neue Komprimierungsart ein alter Hut, denn sie hatten schon länger Vorläufer der jetzt integrierten Patches an Bord, obwohl Torvalds diese bei 2.6.34 nicht aufnehmen wollte.
Das bei optischen Medien wie DVD genutzte UDF-Dateisystem kommt ab 2.6.38 nun ohne das Big Kernel Lock (BKL) aus. Damit haben die Entwickler nach der BKL-Entfernungs-Aktion bei 2.6.37 nun den letzten auf typischen Systemen eingesetzten Kernel-Bestandteil vom BKL befreit. Es gibt zudem einen groben Schlachtplan, um auch die verbliebenen Nutzer des BKLs aus der Welt zu schaffen.
Über den Systemaufruf fallocate() können Programme das Dateisystem nun über ungenutzte Bereiche in der Mitte von Dateien informieren (1, 2; LWN: "Punching holes in files"). Dieser bislang nur von OCFS2 und XFS unterstützten Mechanismus sollte etwa Virtualisierungsprogramme in die Lage versetzen, nicht mehr genutzte Speicherbereiche von Festplatten-Images wieder freizugeben, die als Sparse-Dateien vorliegen – dazu müsste das Gastsystem den Host aber irgendwie über nicht mehr genutzte Speicherbereiche informieren.
Das VFS bietet nun bessere, im Rahmen eines Patch-Reviews erläuterte Unterstützung für automount (u. a. 1, 2, 3). nfsd4-Verwalter J. Bruce Fields hebt in seinem Haupt-Git-Pull-Request einige der Verbesserungen am NFS-4-Daemon hervor, die zur Server-seitigen Unterstützung von NFS 4.1 nötig sind; dabei verweist er auch auf eine Seite im NFS-Wiki, die einen Überblick über die verbleibenden für 4.1-Unterstützung benötigten Änderungen gibt.
Die kleinen Perlen
Viele kleinere, aber keineswegs unbedeutende Neuerungen finden sich in der folgenden Liste mit den englischen Commit-Überschriften der jeweiligen Änderung. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf das Webfrontend des von Linus Torvalds gepflegten Git-Zweigs mit den "offiziellen" Kernel-Quellen auf Kernel.org. Der über diese Links angezeigten Commit-Kommentar und der darunter ausgegebene Patch liefern zahlreiche weitere Informationen zur jeweiligen Änderung.
Vor jedem Link finden sich in eckigen Klammern einige Buchstaben und Zahlen. Ein "C" kennzeichnet Patches mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten, die bei der Kernel-Konfiguration über "make menuconfig", "make xconfig" und ähnliche Werkzeuge angezeigt werden. Ein "D" steht bei Patches, die die Dokumentation verändern, die im Kernel-Zweig unterhalb von Documentation/ liegt. Ein "N" weist Änderungen aus, die eine neue Datei anlegen. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: eine "1" steht für Änderungen, die inklusive Kommentar zwischen 10 und 20 KByte groß sind, eine "2" für solche, die zwischen 20 und 30 KByte Umfang haben; Änderungen ohne Zahl sind kleiner als 10 KByte, Patches mit einer "9" hingegen 90 KByte oder größer.
- [
 D Â] Allow d_manage() to be used in RCU-walk mode - [
   1] autofs4: Add d_automount() dentry operation - [
   1] autofs4: Add d_manage() dentry operation - [
   Â] autofs4: Add v4 pseudo direct mount support - [
   Â] autofs4: Bump version - [
   Â] Btrfs: Add BTRFS_IOC_SUBVOL_GETFLAGS/SETFLAGS ioctls - [
   Â] btrfs: Allow to specify compress method when defrag - [
   1] btrfs: fix wrong free space information of btrfs - [
   1] Btrfs: forced readonly mounts on errors - [
   1] btrfs: make the chunk allocator utilize the devices better - [
   Â] btrfs: provide simple rcu-walk ACL implementation - [
   Â] cifs: add cruid= mount option - [
   Â] CIFS: Add strictcache mount option - [
   Â] CIFS: cifs: reconnect unresponsive servers - [
   Â] cifs: move "ntlmssp" and "local_leases" options out of experimental code - [
   Â] cifs: Support NTLM2 session security during NTLMSSP authentication [try #5] - [
 D Â] Documentation: don't remove lock manager fl_release_private - [
 D Â] Documentation: fl_mylease no longer exists - [
   Â] ext2,3,4: provide simple rcu-walk ACL implementation - [
   Â] ext2: speed up file creates by optimizing rec_len functions - [
   Â] ext3: speed up file creates by optimizing rec_len functions - [
 D 3] fallocate should be a file operation - [
 D 3] fs: change d_compare for rcu-walk - [
 D 1] fs: change d_delete semantics - [
 D 2] fs: change d_hash for rcu-walk - [
   Â] fs: dcache documentation cleanup - [
   1] fs: dcache per-bucket dcache hash locking - [
   1] fs: dcache per-inode inode alias locking - [
   2] fs: dcache scale dentry refcount - [
   1] fs: dcache scale d_unhashed - [
   Â] fs: dcache scale lru - [
   Â] fs: implement faster dentry memcmp - [
   Â] fs: provide simple rcu-walk generic_check_acl implementation - [
 D 2] fs: rcu-walk aware d_revalidate method - [
   1] fs: scale inode alias list - [
   2] fs: scale mntget/mntput - [
 D Â] fs: small rcu-walk documentation fixes - [
   1] fs: Use rename lock and RCU for multi-step operations - [
   Â] fs: Use this_cpu_xx operations in buffer.c - [
   Â] hfsplus: optimize fsync - [
  N2] lockd: Introduce new-style XDR functions for NLMv3 - [
  N2] lockd: Introduce new-style XDR functions for NLMv4 - [
 D Â] nfsd4: eliminate lease delete callback - [
   Â] nfsd4: implement secinfo_no_name - [
   Â] nfsd4: support BIND_CONN_TO_SESSION - [
   1] NFS: Introduce new-style XDR decoding functions for NFSv2 - [
   3] NFS: Introduce new-style XDR decoding functions for NFSv2 - [
   1] NFS: Introduce new-style XDR encoding functions for NFSv2 - [
   2] NFS: Introduce new-style XDR encoding functions for NFSv3 - [
   Â] nilfs2: fiemap support - [
 D Â] NTFS: writev() fix and maintenance/contact details update - [
   1] sanitize vfsmount refcounting changes - [
 D 1] Unexport do_add_mount() and add in follow_automount(), not ->d_automount() - [
   Â] xfs: add a lru to the XFS buffer cache - [
   1] xfs: convert inode cache lookups to use RCU locking - [
   1] xfs: dynamic speculative EOF preallocation - [
   1] xfs: introduce new locks for the log grant ticket wait queues - [
   Â] xfs: provide simple rcu-walk ACL implementation
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; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl). (thl)