The Linux Kernel
5.3.0-rc4
The Linux kernel user’s and administrator’s guide
Kernel Build System
The Linux kernel firmware guide
The Linux kernel user-space API guide
IOCTLs
Working with the kernel development community
Development tools for the kernel
How to write kernel documentation
Kernel Hacking Guides
Linux Tracing Technologies
Kernel Maintainer Handbook
fault-injection
Kernel Livepatching
The Linux driver implementer’s API guide
Core API Documentation
locking
Accounting
Block
cdrom
Integrated Drive Electronics (IDE)
Frame Buffer
fpga
Human Interface Devices (HID)
Industrial I/O
InfiniBand
LEDs
Linux Media Subsystem Documentation
NetLabel
Linux Networking Documentation
pcmcia
Power Management
TCM Virtual Device
timers
Linux Watchdog Support
The Linux Input Documentation
Linux Hardware Monitoring
Linux GPU Driver Developer’s Guide
Security Documentation
Linux Sound Subsystem Documentation
Linux Kernel Crypto API
Filesystems in the Linux kernel
Linux Memory Management Documentation
BPF Documentation
USB support
Linux PCI Bus Subsystem
Assorted Miscellaneous Devices Documentation
Intel Many Integrated Core (MIC) architecture
Linux Scheduler
SuperH Interfaces Guide
ARM Architecture
ARM64 Architecture
IA-64 Architecture
m68k Architecture
powerpc
RISC-V architecture
s390 Architecture
SuperH Interfaces Guide
Sparc Architecture
x86-specific Documentation
Xtensa Architecture
ext4 Data Structures and Algorithms
1. About this Book
2. High Level Design
3. Global Structures
4. Dynamic Structures
Translations
The Linux Kernel
Docs
»
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
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
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