Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) Super Block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) The superblock records various information about the enclosing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) filesystem, such as block counts, inode counts, supported features,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) maintenance information, and more.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) If the sparse\_super feature flag is set, redundant copies of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) superblock and group descriptors are kept only in the groups whose group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) number is either 0 or a power of 3, 5, or 7. If the flag is not set,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) redundant copies are kept in all groups.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) The superblock checksum is calculated against the superblock structure,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) which includes the FS UUID.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) The ext4 superblock is laid out as follows in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) ``struct ext4_super_block``:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)    :widths: 8 8 24 40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)    * - Offset
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)      - Size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)      - Name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)    * - 0x0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)      - s\_inodes\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)      - Total inode count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)    * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)      - s\_blocks\_count\_lo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)      - Total block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)    * - 0x8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)      - s\_r\_blocks\_count\_lo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)      - This number of blocks can only be allocated by the super-user.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)    * - 0xC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)      - s\_free\_blocks\_count\_lo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)      - Free block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)    * - 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47)      - s\_free\_inodes\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)      - Free inode count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)    * - 0x14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51)      - s\_first\_data\_block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)      - First data block. This must be at least 1 for 1k-block filesystems and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53)        is typically 0 for all other block sizes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)    * - 0x18
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)      - s\_log\_block\_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)      - Block size is 2 ^ (10 + s\_log\_block\_size).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)    * - 0x1C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)      - s\_log\_cluster\_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)      - Cluster size is 2 ^ (10 + s\_log\_cluster\_size) blocks if bigalloc is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)        enabled. Otherwise s\_log\_cluster\_size must equal s\_log\_block\_size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63)    * - 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)      - s\_blocks\_per\_group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)      - Blocks per group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)    * - 0x24
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)      - s\_clusters\_per\_group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)      - Clusters per group, if bigalloc is enabled. Otherwise
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)        s\_clusters\_per\_group must equal s\_blocks\_per\_group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)    * - 0x28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)      - s\_inodes\_per\_group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)      - Inodes per group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)    * - 0x2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78)      - s\_mtime
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)      - Mount time, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)    * - 0x30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)      - s\_wtime
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)      - Write time, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)    * - 0x34
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86)      - s\_mnt\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)      - Number of mounts since the last fsck.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)    * - 0x36
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)      - s\_max\_mnt\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91)      - Number of mounts beyond which a fsck is needed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)    * - 0x38
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)      - s\_magic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95)      - Magic signature, 0xEF53
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)    * - 0x3A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)      - s\_state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)      - File system state. See super_state_ for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)    * - 0x3C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)      - s\_errors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)      - Behaviour when detecting errors. See super_errors_ for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)    * - 0x3E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)      - s\_minor\_rev\_level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)      - Minor revision level.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)    * - 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)      - s\_lastcheck
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)      - Time of last check, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)    * - 0x44
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)      - s\_checkinterval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)      - Maximum time between checks, in seconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)    * - 0x48
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)      - s\_creator\_os
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)      - Creator OS. See the table super_creator_ for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)    * - 0x4C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)      - s\_rev\_level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)      - Revision level. See the table super_revision_ for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)    * - 0x50
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)      - s\_def\_resuid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)      - Default uid for reserved blocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)    * - 0x52
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)      - s\_def\_resgid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)      - Default gid for reserved blocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)    * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)      - These fields are for EXT4_DYNAMIC_REV superblocks only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)        
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)        Note: the difference between the compatible feature set and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)        incompatible feature set is that if there is a bit set in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)        incompatible feature set that the kernel doesn't know about, it should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)        refuse to mount the filesystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)        
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)        e2fsck's requirements are more strict; if it doesn't know
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)        about a feature in either the compatible or incompatible feature set, it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)        must abort and not try to meddle with things it doesn't understand...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)    * - 0x54
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)      - s\_first\_ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)      - First non-reserved inode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)    * - 0x58
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)      - s\_inode\_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)      - Size of inode structure, in bytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)    * - 0x5A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)      - s\_block\_group\_nr
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)      - Block group # of this superblock.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)    * - 0x5C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)      - s\_feature\_compat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)      - Compatible feature set flags. Kernel can still read/write this fs even
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)        if it doesn't understand a flag; fsck should not do that. See the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)        super_compat_ table for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)    * - 0x60
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)      - s\_feature\_incompat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)      - Incompatible feature set. If the kernel or fsck doesn't understand one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)        of these bits, it should stop. See the super_incompat_ table for more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168)        info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)    * - 0x64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)      - s\_feature\_ro\_compat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)      - Readonly-compatible feature set. If the kernel doesn't understand one of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)        these bits, it can still mount read-only. See the super_rocompat_ table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)        for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)    * - 0x68
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)      - s\_uuid[16]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)      - 128-bit UUID for volume.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)    * - 0x78
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)      - char
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)      - s\_volume\_name[16]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)      - Volume label.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)    * - 0x88
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)      - char
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)      - s\_last\_mounted[64]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)      - Directory where filesystem was last mounted.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)    * - 0xC8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)      - s\_algorithm\_usage\_bitmap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)      - For compression (Not used in e2fsprogs/Linux)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)    * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)      - Performance hints.  Directory preallocation should only happen if the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195)        EXT4_FEATURE_COMPAT_DIR_PREALLOC flag is on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)    * - 0xCC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)      - s\_prealloc\_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)      - #. of blocks to try to preallocate for ... files? (Not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)        e2fsprogs/Linux)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)    * - 0xCD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)      - s\_prealloc\_dir\_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)      - #. of blocks to preallocate for directories. (Not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)        e2fsprogs/Linux)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)    * - 0xCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)      - s\_reserved\_gdt\_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)      - Number of reserved GDT entries for future filesystem expansion.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)    * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)      - Journalling support is valid only if EXT4_FEATURE_COMPAT_HAS_JOURNAL is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)        set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)    * - 0xD0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)      - s\_journal\_uuid[16]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)      - UUID of journal superblock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)    * - 0xE0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)      - s\_journal\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)      - inode number of journal file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)    * - 0xE4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)      - s\_journal\_dev
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)      - Device number of journal file, if the external journal feature flag is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227)        set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228)    * - 0xE8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230)      - s\_last\_orphan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231)      - Start of list of orphaned inodes to delete.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)    * - 0xEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)      - s\_hash\_seed[4]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)      - HTREE hash seed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236)    * - 0xFC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238)      - s\_def\_hash\_version
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239)      - Default hash algorithm to use for directory hashes. See super_def_hash_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)        for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241)    * - 0xFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243)      - s\_jnl\_backup\_type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)      - If this value is 0 or EXT3\_JNL\_BACKUP\_BLOCKS (1), then the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)        ``s_jnl_blocks`` field contains a duplicate copy of the inode's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)        ``i_block[]`` array and ``i_size``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)    * - 0xFE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)      - s\_desc\_size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)      - Size of group descriptors, in bytes, if the 64bit incompat feature flag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251)        is set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252)    * - 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)      - s\_default\_mount\_opts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255)      - Default mount options. See the super_mountopts_ table for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)    * - 0x104
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258)      - s\_first\_meta\_bg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259)      - First metablock block group, if the meta\_bg feature is enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)    * - 0x108
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262)      - s\_mkfs\_time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263)      - When the filesystem was created, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264)    * - 0x10C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266)      - s\_jnl\_blocks[17]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267)      - Backup copy of the journal inode's ``i_block[]`` array in the first 15
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)        elements and i\_size\_high and i\_size in the 16th and 17th elements,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269)        respectively.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270)    * -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273)      - 64bit support is valid only if EXT4_FEATURE_COMPAT_64BIT is set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)    * - 0x150
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276)      - s\_blocks\_count\_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277)      - High 32-bits of the block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278)    * - 0x154
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)      - s\_r\_blocks\_count\_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281)      - High 32-bits of the reserved block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)    * - 0x158
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284)      - s\_free\_blocks\_count\_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)      - High 32-bits of the free block count.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286)    * - 0x15C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288)      - s\_min\_extra\_isize
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)      - All inodes have at least # bytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290)    * - 0x15E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292)      - s\_want\_extra\_isize
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293)      - New inodes should reserve # bytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294)    * - 0x160
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296)      - s\_flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297)      - Miscellaneous flags. See the super_flags_ table for more info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298)    * - 0x164
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300)      - s\_raid\_stride
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301)      - RAID stride. This is the number of logical blocks read from or written
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)        to the disk before moving to the next disk. This affects the placement
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303)        of filesystem metadata, which will hopefully make RAID storage faster.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)    * - 0x166
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306)      - s\_mmp\_interval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307)      - #. seconds to wait in multi-mount prevention (MMP) checking. In theory,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308)        MMP is a mechanism to record in the superblock which host and device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)        have mounted the filesystem, in order to prevent multiple mounts. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310)        feature does not seem to be implemented...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311)    * - 0x168
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312)      - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)      - s\_mmp\_block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314)      - Block # for multi-mount protection data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)    * - 0x170
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317)      - s\_raid\_stripe\_width
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318)      - RAID stripe width. This is the number of logical blocks read from or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319)        written to the disk before coming back to the current disk. This is used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320)        by the block allocator to try to reduce the number of read-modify-write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)        operations in a RAID5/6.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322)    * - 0x174
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324)      - s\_log\_groups\_per\_flex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325)      - Size of a flexible block group is 2 ^ ``s_log_groups_per_flex``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326)    * - 0x175
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328)      - s\_checksum\_type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329)      - Metadata checksum algorithm type. The only valid value is 1 (crc32c).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330)    * - 0x176
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332)      - s\_reserved\_pad
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333)      -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334)    * - 0x178
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335)      - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336)      - s\_kbytes\_written
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)      - Number of KiB written to this filesystem over its lifetime.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338)    * - 0x180
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340)      - s\_snapshot\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341)      - inode number of active snapshot. (Not used in e2fsprogs/Linux.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342)    * - 0x184
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344)      - s\_snapshot\_id
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345)      - Sequential ID of active snapshot. (Not used in e2fsprogs/Linux.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346)    * - 0x188
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347)      - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348)      - s\_snapshot\_r\_blocks\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349)      - Number of blocks reserved for active snapshot's future use. (Not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350)        e2fsprogs/Linux.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351)    * - 0x190
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)      - s\_snapshot\_list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354)      - inode number of the head of the on-disk snapshot list. (Not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355)        e2fsprogs/Linux.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)    * - 0x194
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358)      - s\_error\_count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359)      - Number of errors seen.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)    * - 0x198
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362)      - s\_first\_error\_time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363)      - First time an error happened, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364)    * - 0x19C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366)      - s\_first\_error\_ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367)      - inode involved in first error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368)    * - 0x1A0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369)      - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370)      - s\_first\_error\_block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371)      - Number of block involved of first error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372)    * - 0x1A8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374)      - s\_first\_error\_func[32]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375)      - Name of function where the error happened.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376)    * - 0x1C8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378)      - s\_first\_error\_line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379)      - Line number where error happened.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380)    * - 0x1CC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382)      - s\_last\_error\_time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383)      - Time of most recent error, in seconds since the epoch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384)    * - 0x1D0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386)      - s\_last\_error\_ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387)      - inode involved in most recent error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388)    * - 0x1D4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390)      - s\_last\_error\_line
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391)      - Line number where most recent error happened.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392)    * - 0x1D8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393)      - \_\_le64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394)      - s\_last\_error\_block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395)      - Number of block involved in most recent error.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396)    * - 0x1E0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398)      - s\_last\_error\_func[32]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399)      - Name of function where the most recent error happened.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400)    * - 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402)      - s\_mount\_opts[64]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403)      - ASCIIZ string of mount options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404)    * - 0x240
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406)      - s\_usr\_quota\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407)      - Inode number of user `quota <quota>`__ file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408)    * - 0x244
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410)      - s\_grp\_quota\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411)      - Inode number of group `quota <quota>`__ file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412)    * - 0x248
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414)      - s\_overhead\_blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415)      - Overhead blocks/clusters in fs. (Huh? This field is always zero, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416)        means that the kernel calculates it dynamically.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417)    * - 0x24C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419)      - s\_backup\_bgs[2]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420)      - Block groups containing superblock backups (if sparse\_super2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421)    * - 0x254
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423)      - s\_encrypt\_algos[4]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424)      - Encryption algorithms in use. There can be up to four algorithms in use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425)        at any time; valid algorithm codes are given in the super_encrypt_ table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426)        below.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427)    * - 0x258
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429)      - s\_encrypt\_pw\_salt[16]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430)      - Salt for the string2key algorithm for encryption.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431)    * - 0x268
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433)      - s\_lpf\_ino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434)      - Inode number of lost+found
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435)    * - 0x26C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437)      - s\_prj\_quota\_inum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438)      - Inode that tracks project quotas.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)    * - 0x270
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441)      - s\_checksum\_seed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442)      - Checksum seed used for metadata\_csum calculations. This value is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443)        crc32c(~0, $orig\_fs\_uuid).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444)    * - 0x274
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446)      - s\_wtime_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447)      - Upper 8 bits of the s_wtime field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448)    * - 0x275
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450)      - s\_mtime_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451)      - Upper 8 bits of the s_mtime field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452)    * - 0x276
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454)      - s\_mkfs_time_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455)      - Upper 8 bits of the s_mkfs_time field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456)    * - 0x277
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458)      - s\_lastcheck_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459)      - Upper 8 bits of the s_lastcheck_hi field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460)    * - 0x278
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462)      - s\_first_error_time_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)      - Upper 8 bits of the s_first_error_time_hi field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464)    * - 0x279
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466)      - s\_last_error_time_hi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467)      - Upper 8 bits of the s_last_error_time_hi field.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468)    * - 0x27A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469)      - \_\_u8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470)      - s\_pad[2]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471)      - Zero padding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472)    * - 0x27C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474)      - s\_encoding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475)      - Filename charset encoding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476)    * - 0x27E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477)      - \_\_le16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478)      - s\_encoding_flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479)      - Filename charset encoding flags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480)    * - 0x280
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482)      - s\_reserved[95]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483)      - Padding to the end of the block.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484)    * - 0x3FC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485)      - \_\_le32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486)      - s\_checksum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487)      - Superblock checksum.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) .. _super_state:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) The superblock state is some combination of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494)    :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499)    * - 0x0001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500)      - Cleanly umounted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501)    * - 0x0002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502)      - Errors detected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503)    * - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504)      - Orphans being recovered
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) .. _super_errors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) The superblock error policy is one of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511)    :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)    * - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517)      - Continue
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518)    * - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519)      - Remount read-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520)    * - 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521)      - Panic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) .. _super_creator:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) The filesystem creator is one of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528)    :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533)    * - 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534)      - Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535)    * - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536)      - Hurd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537)    * - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538)      - Masix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539)    * - 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540)      - FreeBSD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541)    * - 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542)      - Lites
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) .. _super_revision:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) The superblock revision is one of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549)    :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554)    * - 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555)      - Original format
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556)    * - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557)      - v2 format w/ dynamic inode sizes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) Note that ``EXT4_DYNAMIC_REV`` refers to a revision 1 or newer filesystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) .. _super_compat:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) The superblock compatible features field is a combination of any of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567)    :widths: 16 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572)    * - 0x1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573)      - Directory preallocation (COMPAT\_DIR\_PREALLOC).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574)    * - 0x2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575)      - “imagic inodes”. Not clear from the code what this does
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576)        (COMPAT\_IMAGIC\_INODES).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577)    * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578)      - Has a journal (COMPAT\_HAS\_JOURNAL).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579)    * - 0x8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580)      - Supports extended attributes (COMPAT\_EXT\_ATTR).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)    * - 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582)      - Has reserved GDT blocks for filesystem expansion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583)        (COMPAT\_RESIZE\_INODE). Requires RO\_COMPAT\_SPARSE\_SUPER.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584)    * - 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585)      - Has directory indices (COMPAT\_DIR\_INDEX).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586)    * - 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587)      - “Lazy BG”. Not in Linux kernel, seems to have been for uninitialized
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588)        block groups? (COMPAT\_LAZY\_BG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589)    * - 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590)      - “Exclude inode”. Not used. (COMPAT\_EXCLUDE\_INODE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591)    * - 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592)      - “Exclude bitmap”. Seems to be used to indicate the presence of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593)        snapshot-related exclude bitmaps? Not defined in kernel or used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594)        e2fsprogs (COMPAT\_EXCLUDE\_BITMAP).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595)    * - 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596)      - Sparse Super Block, v2. If this flag is set, the SB field s\_backup\_bgs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597)        points to the two block groups that contain backup superblocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598)        (COMPAT\_SPARSE\_SUPER2).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599)    * - 0x400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600)      - Fast commits supported. Although fast commits blocks are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601)        backward incompatible, fast commit blocks are not always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)        present in the journal. If fast commit blocks are present in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603)        the journal, JBD2 incompat feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604)        (JBD2\_FEATURE\_INCOMPAT\_FAST\_COMMIT) gets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605)        set (COMPAT\_FAST\_COMMIT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) .. _super_incompat:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) The superblock incompatible features field is a combination of any of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613)    :widths: 16 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618)    * - 0x1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619)      - Compression (INCOMPAT\_COMPRESSION).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620)    * - 0x2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621)      - Directory entries record the file type. See ext4\_dir\_entry\_2 below
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622)        (INCOMPAT\_FILETYPE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623)    * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624)      - Filesystem needs recovery (INCOMPAT\_RECOVER).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625)    * - 0x8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626)      - Filesystem has a separate journal device (INCOMPAT\_JOURNAL\_DEV).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627)    * - 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628)      - Meta block groups. See the earlier discussion of this feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629)        (INCOMPAT\_META\_BG).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630)    * - 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631)      - Files in this filesystem use extents (INCOMPAT\_EXTENTS).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632)    * - 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633)      - Enable a filesystem size of 2^64 blocks (INCOMPAT\_64BIT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634)    * - 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635)      - Multiple mount protection (INCOMPAT\_MMP).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636)    * - 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637)      - Flexible block groups. See the earlier discussion of this feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638)        (INCOMPAT\_FLEX\_BG).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639)    * - 0x400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640)      - Inodes can be used to store large extended attribute values
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641)        (INCOMPAT\_EA\_INODE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)    * - 0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643)      - Data in directory entry (INCOMPAT\_DIRDATA). (Not implemented?)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644)    * - 0x2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645)      - Metadata checksum seed is stored in the superblock. This feature enables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)        the administrator to change the UUID of a metadata\_csum filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647)        while the filesystem is mounted; without it, the checksum definition
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648)        requires all metadata blocks to be rewritten (INCOMPAT\_CSUM\_SEED).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649)    * - 0x4000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650)      - Large directory >2GB or 3-level htree (INCOMPAT\_LARGEDIR). Prior to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651)        this feature, directories could not be larger than 4GiB and could not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652)        have an htree more than 2 levels deep. If this feature is enabled,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653)        directories can be larger than 4GiB and have a maximum htree depth of 3.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654)    * - 0x8000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655)      - Data in inode (INCOMPAT\_INLINE\_DATA).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656)    * - 0x10000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657)      - Encrypted inodes are present on the filesystem. (INCOMPAT\_ENCRYPT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) .. _super_rocompat:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) The superblock read-only compatible features field is a combination of any of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665)    :widths: 16 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670)    * - 0x1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671)      - Sparse superblocks. See the earlier discussion of this feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672)        (RO\_COMPAT\_SPARSE\_SUPER).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673)    * - 0x2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674)      - This filesystem has been used to store a file greater than 2GiB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675)        (RO\_COMPAT\_LARGE\_FILE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676)    * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677)      - Not used in kernel or e2fsprogs (RO\_COMPAT\_BTREE\_DIR).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678)    * - 0x8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679)      - This filesystem has files whose sizes are represented in units of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680)        logical blocks, not 512-byte sectors. This implies a very large file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681)        indeed! (RO\_COMPAT\_HUGE\_FILE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682)    * - 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683)      - Group descriptors have checksums. In addition to detecting corruption,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684)        this is useful for lazy formatting with uninitialized groups
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685)        (RO\_COMPAT\_GDT\_CSUM).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686)    * - 0x20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687)      - Indicates that the old ext3 32,000 subdirectory limit no longer applies
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688)        (RO\_COMPAT\_DIR\_NLINK). A directory's i\_links\_count will be set to 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689)        if it is incremented past 64,999.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690)    * - 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691)      - Indicates that large inodes exist on this filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692)        (RO\_COMPAT\_EXTRA\_ISIZE).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693)    * - 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694)      - This filesystem has a snapshot (RO\_COMPAT\_HAS\_SNAPSHOT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695)    * - 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696)      - `Quota <Quota>`__ (RO\_COMPAT\_QUOTA).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697)    * - 0x200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698)      - This filesystem supports “bigalloc”, which means that file extents are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699)        tracked in units of clusters (of blocks) instead of blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700)        (RO\_COMPAT\_BIGALLOC).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701)    * - 0x400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702)      - This filesystem supports metadata checksumming.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703)        (RO\_COMPAT\_METADATA\_CSUM; implies RO\_COMPAT\_GDT\_CSUM, though
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704)        GDT\_CSUM must not be set)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705)    * - 0x800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706)      - Filesystem supports replicas. This feature is neither in the kernel nor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707)        e2fsprogs. (RO\_COMPAT\_REPLICA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708)    * - 0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709)      - Read-only filesystem image; the kernel will not mount this image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710)        read-write and most tools will refuse to write to the image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711)        (RO\_COMPAT\_READONLY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712)    * - 0x2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713)      - Filesystem tracks project quotas. (RO\_COMPAT\_PROJECT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714)    * - 0x8000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715)      - Verity inodes may be present on the filesystem. (RO\_COMPAT\_VERITY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) .. _super_def_hash:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) The ``s_def_hash_version`` field is one of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722)    :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727)    * - 0x0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728)      - Legacy.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729)    * - 0x1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730)      - Half MD4.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731)    * - 0x2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732)      - Tea.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733)    * - 0x3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734)      - Legacy, unsigned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735)    * - 0x4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736)      - Half MD4, unsigned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737)    * - 0x5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738)      - Tea, unsigned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) .. _super_mountopts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) The ``s_default_mount_opts`` field is any combination of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745)    :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750)    * - 0x0001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751)      - Print debugging info upon (re)mount. (EXT4\_DEFM\_DEBUG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752)    * - 0x0002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753)      - New files take the gid of the containing directory (instead of the fsgid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754)        of the current process). (EXT4\_DEFM\_BSDGROUPS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755)    * - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756)      - Support userspace-provided extended attributes. (EXT4\_DEFM\_XATTR\_USER)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757)    * - 0x0008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758)      - Support POSIX access control lists (ACLs). (EXT4\_DEFM\_ACL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759)    * - 0x0010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760)      - Do not support 32-bit UIDs. (EXT4\_DEFM\_UID16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761)    * - 0x0020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762)      - All data and metadata are commited to the journal.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763)        (EXT4\_DEFM\_JMODE\_DATA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764)    * - 0x0040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765)      - All data are flushed to the disk before metadata are committed to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766)        journal. (EXT4\_DEFM\_JMODE\_ORDERED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767)    * - 0x0060
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768)      - Data ordering is not preserved; data may be written after the metadata
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769)        has been written. (EXT4\_DEFM\_JMODE\_WBACK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770)    * - 0x0100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771)      - Disable write flushes. (EXT4\_DEFM\_NOBARRIER)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772)    * - 0x0200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773)      - Track which blocks in a filesystem are metadata and therefore should not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774)        be used as data blocks. This option will be enabled by default on 3.18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775)        hopefully. (EXT4\_DEFM\_BLOCK\_VALIDITY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776)    * - 0x0400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777)      - Enable DISCARD support, where the storage device is told about blocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778)        becoming unused. (EXT4\_DEFM\_DISCARD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779)    * - 0x0800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780)      - Disable delayed allocation. (EXT4\_DEFM\_NODELALLOC)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) .. _super_flags:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) The ``s_flags`` field is any combination of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787)    :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792)    * - 0x0001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793)      - Signed directory hash in use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794)    * - 0x0002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795)      - Unsigned directory hash in use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796)    * - 0x0004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797)      - To test development code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) .. _super_encrypt:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) The ``s_encrypt_algos`` list can contain any of the following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) .. list-table::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804)    :widths: 8 72
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805)    :header-rows: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807)    * - Value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808)      - Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809)    * - 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810)      - Invalid algorithm (ENCRYPTION\_MODE\_INVALID).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811)    * - 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812)      - 256-bit AES in XTS mode (ENCRYPTION\_MODE\_AES\_256\_XTS).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813)    * - 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814)      - 256-bit AES in GCM mode (ENCRYPTION\_MODE\_AES\_256\_GCM).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815)    * - 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816)      - 256-bit AES in CBC mode (ENCRYPTION\_MODE\_AES\_256\_CBC).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) Total size of the superblock is 1024 bytes.