Kernel-Log – Was 2.6.29 bringt (4): Dateisysteme, Storage – Btrfs, SquashFS, Ext4 ohne Journal und neue Storage-Treiber
Seite 3: Libata und SCSI, Anhang
Libata, SCSI und Unterbau
Die Libata-Entwickler waren derweil auch keineswegs untätig (1, 2). So erweiterte Alan Cox das Libata-Subsystem um 32-Bit-PIO-Unterstützung; der sata-sil-Treiber hingegen beherrscht nun Large Block Transfers. Neu dabei ist die Unterstützung für die VIA-Chips VT6415 (PATA), VT8261 (SATA) sowie den den VX855 (PATA) sowie dessen Verwandten mit der PCI-ID 0x0571.
Wie angekündigt haben die Kernel-Hacker den zum SCSI-Subsystem gehörenden Treiber ide-scsi entfernt, da 2.6er-Kernel und moderne Brennprogramme schon lange dazu in der Lage sind, ohne SCSI-Emulation auf IDE-CD/DVD-Brenner zuzugreifen. Neu im SCSI-Subsystem ist die maßgeblich von Intel im Rahmen des Open-FCoE-Projekts entwickelte Libfc – eine modulare Fibre Channel Library, auf die die ebenfalls neu aufgenommene Unterstützung für Fibre Channel over Ethernet zurückgreift. Erstmals dabei ist auch der iSCSI-Treiber cxgb3i für Chelsio-Adapters mit T3-Chips.
Über das Pseudo-Dateisystem Sysfs kann man dem IDE-, Libata- und SCSI-Subsystemen zugrundeliegende Block-Layer nun mitteilen, ob es sich bei einem Datenträger um ein "rotierendes Medium" handelt, sofern der Kernel das nicht selbst feststellen kann. Andere Kernel-Subsysteme und Userspace-Programme können mit Hilfe dieser Informationen für Festplatten oder SSDs ideale Zugriffsmuster aktivieren, um die bestmögliche Geschwindigkeit beim Schreiben und Lesen von Daten zu erzielen. Der Device Mapper (DM) unterstützt nun Barrier und stellt so auf Wunsch des Dateisystems sicher, dass Daten wirklich auf die am DM-Verbund beteiligten Datenträger geschrieben wurden, bevor die nächsten Aufgaben angegangen werden – das ist für die Integrität von Dateisystemen mit Journal von Vorteil (siehe auch LWN-Artikel zum Thema).
Noch mehr
Neben den bereits erwähnten Neuerungen gab es für 2.6.29 noch zahlreiche weitere wichtige Änderungen rund um Dateisysteme und die Storage-Unterstützung des Linux-Kernels:
Dateisysteme
Btrfs
- zu viele Commits, um sie hier alle aufzulisten; eine Übersicht bieten die Git-Pull-Requests (1, 2, 3, 4, 5, 6) sowie das Git-Web-Interface auf kernel.org.
CIFS
Ext[234]
- ext3: Add support for non-native signed/unsigned htree hash algorithms
- ext4: Add markers for better debuggability
- ext4: Add mount option to set kjournald's I/O priority
- ext4: Add sanity checks for the superblock before mounting the filesystem
- ext4: Add support for non-native signed/unsigned htree hash algorithms
- ext4: Remove code to create the journal inode
- ext4: Remove "extents" mount option
- Update Documentation/filesystems/ext4.txt
Fuse
- fuse: implement ioctl support
- fuse: implement poll support
- fuse: implement unsolicited notification
- fuse: update interface version
OCFS2
- ocfs2: add mount option and Kconfig option for acl
- ocfs2: add POSIX ACL API
- ocfs2: Add quota calls for allocation and freeing of inodes and space
- ocfs2: add security xattr API
- ocfs2: Add the on-disk structures for metadata checksums.
- ocfs2: Add the underlying blockcheck code.
- ocfs2: Assign feature bits and system inodes to quota feature and quota files
- ocfs2: Enable quota accounting on mount, disable on umount
- ocfs2: Implementation of local and global quota file handling
- ocfs2: Implement quota recovery
- ocfs2: Periodic quota syncing
- ocfs2: Remove JBD compatibility layer
- ocfs2/xattr: Merge xattr set transaction.
SquashFS
- MAINTAINERS: squashfs entry
- Squashfs: block operations
- Squashfs: cache operations
- Squashfs: directory lookup operations
- Squashfs: directory readdir operations
- Squashfs: documentation
- Squashfs: export operations
- Squashfs: fragment block operations
- Squashfs: header files
- Squashfs: initrd support
- Squashfs: inode operations
- Squashfs: Kconfig entry
- Squashfs: Makefiles
- Squashfs: regular file operations
- Squashfs: super block operations
- Squashfs: symlink operations
- Squashfs: uid/gid lookup operations
UBIFS
- UBIFS: add debugfs support
- UBIFS: introduce compression mount options
- UBIFS: remove fast unmounting
- UBIFS: separate debugging fields out
- UBIFS: slight compression optimization
- UBIFS: use bit-fields to store compression type
XFS
- XFS: add generic btree types
- XFS: add new btree statistics
- XFS: implement generic xfs_btree_decrement
- XFS: implement generic xfs_btree_delete/delrec
- XFS: implement generic xfs_btree_increment
- XFS: implement generic xfs_btree_insert/insrec
- XFS: implement generic xfs_btree_lookup
- XFS: implement generic xfs_btree_rshift
- XFS: implement generic xfs_btree_split
- XFS: make btree root in inode support generic
- XFS: make btree tracing generic
- XFS: refactor xfs_btree_readahead
- XFS: Sync up kernel and user-space headers
- XFS: Update maintainers
VFS, andere Dateisysteme
- fs: use menuconfig to control the Misc. filesystems menu
- filesystem notification: create fs/notify to contain all fs notification
- fix f_count description in Documentation/filesystems/files.txt
- fs: use menuconfig to control the Misc. filesystems menu
- introduce new LSM hooks where vfsmount is available.
- kill ->dir_notify()
- nfsd: document new filehandle fsid types
- NFSD: Add documenting comments for nfsctl interface
- GFS2: Support for FIEMAP ioctl
- GFS2: Kill two daemons with one patch
- quota: Allow to separately enable quota accounting and enforcing limits
- poll: allow f_op->poll to sleep
Storage
DM, DMA, MD, UBI sowie Block-Layer inklusive IO-Scheduler
- async_tx, dmaengine: document channel allocation and api rework
- block: Add Kconfig help which notes that ext4 needs CONFIG_LBD
- block: add sysfs file for controlling io stats accounting
- block: add text file detailing queue/ sysfs files
- block: don't use plugging on SSD devices
- block: make barrier completion more robust
- block: Supress Buffer I/O errors when SCSI REQ_QUIET flag set
- cfq-iosched: remove limit of dispatch depth of max 4 times quantum
- dm: add name and uuid to sysfs
- dmaengine: add a release for dma class devices and dependent infrastructure
- dmaengine: remove 'bigref' infrastructure
- dmaengine: up-level reference counting to the module level
- dm: support barriers on simple devices
- Get rid of CONFIG_LSF
- nbd: tell the block layer that it is not a rotational device
- UBI: document UBI ioctls
- UBI: simplify PEB protection code
IDE
- ata: add CFA specific identify data words
- ide: add at91_ide driver
- ide: add port and host iterators
- ide: dynamic allocation of device structures
- ide: ide.c 'clear' fix, update "ide=nodma" documentation
- ide: update warm-plug HOWTO
- it821x: Add ultra_mask quirk for Vortex86SX
Libata
- ahci: Add the Device IDs for MCP89 and remove IDs of MCP7B to/from ahci.c
- ata_piix: save, use saved and restore IOCFG
- libata ahci: Add SATA GEN3 related messages
- libata ahci: Withdraw IGN_SERR_INTERNAL for SB800 SATA
- libata: beef up iterators
- libata: blacklist NCQ on OCZ CORE 2 SSD (resend)
- libata: New driver for OCTEON SOC Compact Flash interface (v7).
- libata: use WARN_ON_ONCE on hot paths
- pata_hpt366: reimplement mode programming
- pata_hpt3x3: Workarounds for chipset
- SATA AHCI: Blacklist system that spins off disks during ACPI power off
- SATA: Blacklisting of systems that spin off disks during ACPI power off
- sata_mv: fix 8-port timeouts on 508x/6081 chips
- sata_mv: Fix chip type for Hightpoint RocketRaid 1740/1742
- sata_mv: no longer experimental (v2)
- SATA PIIX: Blacklist system that spins off disks during ACPI power off
- SATA Sil: Blacklist system that spins off disks during ACPI power off
MMC
- mmc: Add 8-bit bus width support
- mmc: Add a MX2/MX3 specific SDHC driver
- mmci: Add support for ST Micro derivate
- mmc_spi: Add support for OpenFirmware bindings
- mmc: warn about voltage mismatches
- ricoh_mmc: Handle newer models of Ricoh controllers
- sdhci: activate led support also when module
- sdhci: handle built-in sdhci with modular leds class
- sdricoh_cs: Add support for Bay Controller devices
MDT
- MTD: add MTD tests to compilation
- MTD: LPDDR Command set driver
- MTD: LPDDR extended physmap driver to support LPDDR flash
- MTD: LPDDR Makefile and KConfig
- MTD: NAND ndfc driver
- MTD: physmap: make physmap compat explicit
- MTD: tests: add mtd_oobtest
- MTD update internal API to support 64-bit device size
SCSI
- SCSI: FC protocol definition header files
- SCSI: hptiop: Add new PCI device ID
- SCSI: lpfc 8.3.0 : Add BlockGuard support (T10-DIF) code
- SCSI: lpfc 8.3.0 : Add BlockGuard support (T10-DIF) structs and defs
- SCSI: lpfc 8.3.0 : Added 3 small features and improve PCI EEH support
- SCSI: lpfc 8.3.0 : Add support for Power Management Suspend/Resume operations
- SCSI: qla2xxx: Add ISP81XX support.
- SCSI: qla2xxx: add support for multi-queue adapter
- SCSI: qla2xxx: Code changes for qla data structure refactoring
- SCSI: qla2xxx: Refactor qla data structures