18a98ec7cSDarrick J. Wong.. SPDX-License-Identifier: GPL-2.0 28a98ec7cSDarrick J. Wong 38a98ec7cSDarrick J. WongHigh Level Design 48a98ec7cSDarrick J. Wong================= 58a98ec7cSDarrick J. Wong 68a98ec7cSDarrick J. WongAn ext4 file system is split into a series of block groups. To reduce 78a98ec7cSDarrick J. Wongperformance difficulties due to fragmentation, the block allocator tries 88a98ec7cSDarrick J. Wongvery hard to keep each file's blocks within the same group, thereby 98a98ec7cSDarrick J. Wongreducing seek times. The size of a block group is specified in 10*3103084aSWang Jianjian``sb.s_blocks_per_group`` blocks, though it can also calculated as 8 * 118a98ec7cSDarrick J. Wong``block_size_in_bytes``. With the default block size of 4KiB, each group 128a98ec7cSDarrick J. Wongwill contain 32,768 blocks, for a length of 128MiB. The number of block 138a98ec7cSDarrick J. Wonggroups is the size of the device divided by the size of a block group. 148a98ec7cSDarrick J. Wong 158a98ec7cSDarrick J. WongAll fields in ext4 are written to disk in little-endian order. HOWEVER, 168a98ec7cSDarrick J. Wongall fields in jbd2 (the journal) are written to disk in big-endian 178a98ec7cSDarrick J. Wongorder. 188a98ec7cSDarrick J. Wong 198a98ec7cSDarrick J. Wong.. include:: blocks.rst 208a98ec7cSDarrick J. Wong.. include:: blockgroup.rst 218a98ec7cSDarrick J. Wong.. include:: special_inodes.rst 228a98ec7cSDarrick J. Wong.. include:: allocators.rst 238a98ec7cSDarrick J. Wong.. include:: checksums.rst 248a98ec7cSDarrick J. Wong.. include:: bigalloc.rst 258a98ec7cSDarrick J. Wong.. include:: inlinedata.rst 268a98ec7cSDarrick J. Wong.. include:: eainode.rst 2784fb7ca4SEric Biggers.. include:: verity.rst 28