GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • The Linux Kernel
  • Development process
  • Submitting patches
  • Code of conduct
  • Maintainer handbook
  • All development-process docs
  • Core API
  • Driver APIs
  • Subsystems
  • Filesystems in the Linux kernel
  • Block
  • CD-ROM
  • SCSI Subsystem
  • TCM Virtual Device

This view

  • Original page
  • New address

GeezerVison is showing docs.kernel.org — 2. High Level Design — The Linux Kernel documentation

2. High Level Design¶

An ext4 file system is split into a series of block groups. To reduce performance difficulties due to fragmentation, the block allocator tries very hard to keep each file’s blocks within the same group, thereby reducing seek times. The size of a block group is specified in sb.s_blocks_per_group blocks, though it can also calculated as 8 * block_size_in_bytes. With the default block size of 4KiB, each group will contain 32,768 blocks, for a length of 128MiB. The number of block groups is the size of the device divided by the size of a block group.

All fields in ext4 are written to disk in little-endian order. HOWEVER, all fields in jbd2 (the journal) are written to disk in big-endian order.

  • 2.1. Blocks
  • 2.2. Block Groups
    • 2.2.1. Layout
    • 2.2.2. Flexible Block Groups
    • 2.2.3. Meta Block Groups
    • 2.2.4. Lazy Block Group Initialization
  • 2.3. Special inodes
  • 2.4. Block and Inode Allocation Policy
  • 2.5. Checksums
  • 2.6. Bigalloc
  • 2.7. Inline Data
    • 2.7.1. Inline Directories
  • 2.8. Large Extended Attribute Values
  • 2.9. Verity files
  • 2.10. Atomic Block Writes
    • 2.10.1. Introduction
    • 2.10.2. Requirements
    • 2.10.3. Multi-fsblock Implementation Details
    • 2.10.4. Handling Split Extents Across Leaf Blocks
    • 2.10.5. Handling Journal transactions
    • 2.10.6. How to
      • 2.10.6.1. Creating Filesystems with Atomic Write Support
      • 2.10.6.2. Application Interface
    • 2.10.7. Hardware Support
    • 2.10.8. See Also
©The kernel development community. | Powered by Sphinx 5.3.0 & Alabaster 0.7.16 | Page source
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.