The Linux Kernel
6.3.0-rc3
  • A guide to the Kernel Development Process
  • Submitting patches: the essential guide to getting your code into the kernel
  • Code of conduct
  • Kernel Maintainer Handbook
  • All development-process docs
  • Core API Documentation
  • Driver implementer’s API guide
  • Kernel subsystem documentation
    • Driver implementer’s API guide
    • Core API Documentation
    • locking
    • Accounting
    • Block
    • cdrom
    • CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
    • Frame Buffer
    • fpga
    • Human Interface Devices (HID)
    • I2C/SMBus Subsystem
    • Industrial I/O
    • ISDN
    • InfiniBand
    • LEDs
    • NetLabel
    • Networking
    • pcmcia
    • Power Management
    • TCM Virtual Device
    • timers
    • Serial Peripheral Interface (SPI)
    • 1-Wire Subsystem
    • Watchdog Support
    • Virtualization Support
    • Input Documentation
    • Hardware Monitoring
    • GPU Driver Developer’s Guide
    • Compute Accelerators
    • Security Documentation
    • Sound Subsystem Documentation
    • Crypto API
    • Filesystems in the Linux kernel
      • Core VFS documentation
      • Filesystem support layers
      • Filesystems
        • v9fs: Plan 9 Resource Sharing for Linux
        • Acorn Disc Filing System - ADFS
        • Overview of Amiga Filesystems
        • kAFS: AFS FILESYSTEM
        • autofs - how it works
        • Miscellaneous Device control operations for the autofs kernel module
        • BeOS filesystem for Linux
        • BFS Filesystem for Linux
        • BTRFS
        • CIFS
        • Ceph Distributed File System
        • Coda Kernel-Venus Interface
        • Configfs - Userspace-driven Kernel Object Configuration
        • Cramfs - cram a filesystem onto a small ROM
        • Direct Access for files
        • DebugFS
        • DLMFS
        • eCryptfs: A stacked cryptographic filesystem for Linux
        • efivarfs - a (U)EFI variable filesystem
        • EROFS - Enhanced Read-Only File System
        • The Second Extended Filesystem
        • Ext3 Filesystem
        • ext4 Data Structures and Algorithms
          • 1. About this Book
          • 2. High Level Design
          • 3. Global Structures
          • 4. Dynamic Structures
        • WHAT IS Flash-Friendly File System (F2FS)?
        • Global File System 2
        • uevents and GFS2
        • Glock internal locking rules
        • Macintosh HFS Filesystem for Linux
        • Macintosh HFSPlus Filesystem for Linux
        • Read/Write HPFS 2.09
        • FUSE
        • Fuse I/O Modes
        • Inotify - A Powerful yet Simple File Change Notification System
        • ISO9660 Filesystem
        • NILFS2
        • NFS
        • The Linux NTFS filesystem driver
        • NTFS3
        • OCFS2 filesystem
        • OCFS2 file system - online file check
        • Optimized MPEG Filesystem (OMFS)
        • ORANGEFS
        • Overlay Filesystem
        • The /proc Filesystem
        • The QNX6 Filesystem
        • Ramfs, rootfs and initramfs
        • relay interface (formerly relayfs)
        • ROMFS - ROM File System
        • SPU Filesystem
        • Squashfs 4.0 Filesystem
        • sysfs - _The_ filesystem for exporting kernel objects
        • SystemV Filesystem
        • Tmpfs
        • UBI File System
        • UBIFS Authentication Support
        • UDF file system
        • virtiofs: virtio-fs host<->guest shared file system
        • VFAT
        • XFS Logging Design
        • XFS Self Describing Metadata
        • ZoneFS - Zone filesystem for Zoned block devices
    • Memory Management Documentation
    • BPF Documentation
    • USB support
    • PCI Bus Subsystem
    • SCSI Subsystem
    • Assorted Miscellaneous Devices Documentation
    • Scheduler
    • MHI
    • PECI Subsystem
  • Locking in the kernel
  • Linux kernel licensing rules
  • How to write kernel documentation
  • Development tools for the kernel
  • Kernel Testing Guide
  • Kernel Hacking Guides
  • Linux Tracing Technologies
  • fault-injection
  • Kernel Livepatching
  • Rust
  • The Linux kernel user’s and administrator’s guide
  • The kernel build system
  • Reporting issues
  • User-space tools
  • The Linux kernel user-space API guide
  • The Linux kernel firmware guide
  • Open Firmware and Devicetree
  • CPU Architectures
  • Unsorted Documentation
  • Translations
The Linux Kernel
  • Kernel subsystem documentation
  • Filesystems in the Linux kernel
  • ext4 Data Structures and Algorithms
  • View page source

ext4 Data Structures and Algorithms¶

  • 1. About this Book
    • 1.1. License
    • 1.2. Terminology
    • 1.3. Other References
  • 2. High Level Design
    • 2.1. Blocks
    • 2.2. Layout
    • 2.3. Flexible Block Groups
    • 2.4. Meta Block Groups
    • 2.5. Lazy Block Group Initialization
    • 2.6. Special inodes
    • 2.7. Block and Inode Allocation Policy
    • 2.8. Checksums
    • 2.9. Bigalloc
    • 2.10. Inline Data
      • 2.10.1. Inline Directories
    • 2.11. Large Extended Attribute Values
    • 2.12. Verity files
  • 3. Global Structures
    • 3.1. Super Block
    • 3.2. Block Group Descriptors
    • 3.3. Block and inode Bitmaps
    • 3.4. Inode Table
    • 3.5. Multiple Mount Protection
    • 3.6. Journal (jbd2)
      • 3.6.1. Layout
      • 3.6.2. External Journal
      • 3.6.3. Block Header
      • 3.6.4. Super Block
      • 3.6.5. Descriptor Block
      • 3.6.6. Data Block
      • 3.6.7. Revocation Block
      • 3.6.8. Commit Block
      • 3.6.9. Fast commits
      • 3.6.10. Fast Commit Replay Idempotence
      • 3.6.11. Journal Checkpoint
    • 3.7. Orphan file
  • 4. Dynamic Structures
    • 4.1. Index Nodes
      • 4.1.1. Inode Size
      • 4.1.2. Finding an Inode
      • 4.1.3. Inode Timestamps
    • 4.2. The Contents of inode.i_block
      • 4.2.1. Symbolic Links
      • 4.2.2. Direct/Indirect Block Addressing
      • 4.2.3. Extent Tree
      • 4.2.4. Inline Data
    • 4.3. Directory Entries
      • 4.3.1. Linear (Classic) Directories
      • 4.3.2. Hash Tree Directories
    • 4.4. Extended Attributes
      • 4.4.1. Attribute Name Indices
      • 4.4.2. POSIX ACLs
Previous Next

© Copyright The kernel development community.

Built with Sphinx using a theme provided by Read the Docs.