aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems/ext4/ondisk/super.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/filesystems/ext4/ondisk/super.rst')
-rw-r--r--Documentation/filesystems/ext4/ondisk/super.rst801
1 files changed, 0 insertions, 801 deletions
diff --git a/Documentation/filesystems/ext4/ondisk/super.rst b/Documentation/filesystems/ext4/ondisk/super.rst
deleted file mode 100644
index 5f81dd87e0b9..000000000000
--- a/Documentation/filesystems/ext4/ondisk/super.rst
+++ /dev/null
@@ -1,801 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0
-
-Super Block
------------
-
-The superblock records various information about the enclosing
-filesystem, such as block counts, inode counts, supported features,
-maintenance information, and more.
-
-If the sparse\_super feature flag is set, redundant copies of the
-superblock and group descriptors are kept only in the groups whose group
-number is either 0 or a power of 3, 5, or 7. If the flag is not set,
-redundant copies are kept in all groups.
-
-The superblock checksum is calculated against the superblock structure,
-which includes the FS UUID.
-
-The ext4 superblock is laid out as follows in
-``struct ext4_super_block``:
-
-.. list-table::
- :widths: 1 1 1 77
- :header-rows: 1
-
- * - Offset
- - Size
- - Name
- - Description
- * - 0x0
- - \_\_le32
- - s\_inodes\_count
- - Total inode count.
- * - 0x4
- - \_\_le32
- - s\_blocks\_count\_lo
- - Total block count.
- * - 0x8
- - \_\_le32
- - s\_r\_blocks\_count\_lo
- - This number of blocks can only be allocated by the super-user.
- * - 0xC
- - \_\_le32
- - s\_free\_blocks\_count\_lo
- - Free block count.
- * - 0x10
- - \_\_le32
- - s\_free\_inodes\_count
- - Free inode count.
- * - 0x14
- - \_\_le32
- - s\_first\_data\_block
- - First data block. This must be at least 1 for 1k-block filesystems and
- is typically 0 for all other block sizes.
- * - 0x18
- - \_\_le32
- - s\_log\_block\_size
- - Block size is 2 ^ (10 + s\_log\_block\_size).
- * - 0x1C
- - \_\_le32
- - s\_log\_cluster\_size
- - Cluster size is (2 ^ s\_log\_cluster\_size) blocks if bigalloc is
- enabled. Otherwise s\_log\_cluster\_size must equal s\_log\_block\_size.
- * - 0x20
- - \_\_le32
- - s\_blocks\_per\_group
- - Blocks per group.
- * - 0x24
- - \_\_le32
- - s\_clusters\_per\_group
- - Clusters per group, if bigalloc is enabled. Otherwise
- s\_clusters\_per\_group must equal s\_blocks\_per\_group.
- * - 0x28
- - \_\_le32
- - s\_inodes\_per\_group
- - Inodes per group.
- * - 0x2C
- - \_\_le32
- - s\_mtime
- - Mount time, in seconds since the epoch.
- * - 0x30
- - \_\_le32
- - s\_wtime
- - Write time, in seconds since the epoch.
- * - 0x34
- - \_\_le16
- - s\_mnt\_count
- - Number of mounts since the last fsck.
- * - 0x36
- - \_\_le16
- - s\_max\_mnt\_count
- - Number of mounts beyond which a fsck is needed.
- * - 0x38
- - \_\_le16
- - s\_magic
- - Magic signature, 0xEF53
- * - 0x3A
- - \_\_le16
- - s\_state
- - File system state. See super_state_ for more info.
- * - 0x3C
- - \_\_le16
- - s\_errors
- - Behaviour when detecting errors. See super_errors_ for more info.
- * - 0x3E
- - \_\_le16
- - s\_minor\_rev\_level
- - Minor revision level.
- * - 0x40
- - \_\_le32
- - s\_lastcheck
- - Time of last check, in seconds since the epoch.
- * - 0x44
- - \_\_le32
- - s\_checkinterval
- - Maximum time between checks, in seconds.
- * - 0x48
- - \_\_le32
- - s\_creator\_os
- - Creator OS. See the table super_creator_ for more info.
- * - 0x4C
- - \_\_le32
- - s\_rev\_level
- - Revision level. See the table super_revision_ for more info.
- * - 0x50
- - \_\_le16
- - s\_def\_resuid
- - Default uid for reserved blocks.
- * - 0x52
- - \_\_le16
- - s\_def\_resgid
- - Default gid for reserved blocks.
- * -
- -
- -
- - These fields are for EXT4_DYNAMIC_REV superblocks only.
-
- Note: the difference between the compatible feature set and the
- incompatible feature set is that if there is a bit set in the
- incompatible feature set that the kernel doesn't know about, it should
- refuse to mount the filesystem.
-
- e2fsck's requirements are more strict; if it doesn't know
- about a feature in either the compatible or incompatible feature set, it
- must abort and not try to meddle with things it doesn't understand...
- * - 0x54
- - \_\_le32
- - s\_first\_ino
- - First non-reserved inode.
- * - 0x58
- - \_\_le16
- - s\_inode\_size
- - Size of inode structure, in bytes.
- * - 0x5A
- - \_\_le16
- - s\_block\_group\_nr
- - Block group # of this superblock.
- * - 0x5C
- - \_\_le32
- - s\_feature\_compat
- - Compatible feature set flags. Kernel can still read/write this fs even
- if it doesn't understand a flag; fsck should not do that. See the
- super_compat_ table for more info.
- * - 0x60
- - \_\_le32
- - s\_feature\_incompat
- - Incompatible feature set. If the kernel or fsck doesn't understand one
- of these bits, it should stop. See the super_incompat_ table for more
- info.
- * - 0x64
- - \_\_le32
- - s\_feature\_ro\_compat
- - Readonly-compatible feature set. If the kernel doesn't understand one of
- these bits, it can still mount read-only. See the super_rocompat_ table
- for more info.
- * - 0x68
- - \_\_u8
- - s\_uuid[16]
- - 128-bit UUID for volume.
- * - 0x78
- - char
- - s\_volume\_name[16]
- - Volume label.
- * - 0x88
- - char
- - s\_last\_mounted[64]
- - Directory where filesystem was last mounted.
- * - 0xC8
- - \_\_le32
- - s\_algorithm\_usage\_bitmap
- - For compression (Not used in e2fsprogs/Linux)
- * -
- -
- -
- - Performance hints. Directory preallocation should only happen if the
- EXT4_FEATURE_COMPAT_DIR_PREALLOC flag is on.
- * - 0xCC
- - \_\_u8
- - s\_prealloc\_blocks
- - #. of blocks to try to preallocate for ... files? (Not used in
- e2fsprogs/Linux)
- * - 0xCD
- - \_\_u8
- - s\_prealloc\_dir\_blocks
- - #. of blocks to preallocate for directories. (Not used in
- e2fsprogs/Linux)
- * - 0xCE
- - \_\_le16
- - s\_reserved\_gdt\_blocks
- - Number of reserved GDT entries for future filesystem expansion.
- * -
- -
- -
- - Journalling support is valid only if EXT4_FEATURE_COMPAT_HAS_JOURNAL is
- set.
- * - 0xD0
- - \_\_u8
- - s\_journal\_uuid[16]
- - UUID of journal superblock
- * - 0xE0
- - \_\_le32
- - s\_journal\_inum
- - inode number of journal file.
- * - 0xE4
- - \_\_le32
- - s\_journal\_dev
- - Device number of journal file, if the external journal feature flag is
- set.
- * - 0xE8
- - \_\_le32
- - s\_last\_orphan
- - Start of list of orphaned inodes to delete.
- * - 0xEC
- - \_\_le32
- - s\_hash\_seed[4]
- - HTREE hash seed.
- * - 0xFC
- - \_\_u8
- - s\_def\_hash\_version
- - Default hash algorithm to use for directory hashes. See super_def_hash_
- for more info.
- * - 0xFD
- - \_\_u8
- - s\_jnl\_backup\_type
- - If this value is 0 or EXT3\_JNL\_BACKUP\_BLOCKS (1), then the
- ``s_jnl_blocks`` field contains a duplicate copy of the inode's
- ``i_block[]`` array and ``i_size``.
- * - 0xFE
- - \_\_le16
- - s\_desc\_size
- - Size of group descriptors, in bytes, if the 64bit incompat feature flag
- is set.
- * - 0x100
- - \_\_le32
- - s\_default\_mount\_opts
- - Default mount options. See the super_mountopts_ table for more info.
- * - 0x104
- - \_\_le32
- - s\_first\_meta\_bg
- - First metablock block group, if the meta\_bg feature is enabled.
- * - 0x108
- - \_\_le32
- - s\_mkfs\_time
- - When the filesystem was created, in seconds since the epoch.
- * - 0x10C
- - \_\_le32
- - s\_jnl\_blocks[17]
- - Backup copy of the journal inode's ``i_block[]`` array in the first 15
- elements and i\_size\_high and i\_size in the 16th and 17th elements,
- respectively.
- * -
- -
- -
- - 64bit support is valid only if EXT4_FEATURE_COMPAT_64BIT is set.
- * - 0x150
- - \_\_le32
- - s\_blocks\_count\_hi
- - High 32-bits of the block count.
- * - 0x154
- - \_\_le32
- - s\_r\_blocks\_count\_hi
- - High 32-bits of the reserved block count.
- * - 0x158
- - \_\_le32
- - s\_free\_blocks\_count\_hi
- - High 32-bits of the free block count.
- * - 0x15C
- - \_\_le16
- - s\_min\_extra\_isize
- - All inodes have at least # bytes.
- * - 0x15E
- - \_\_le16
- - s\_want\_extra\_isize
- - New inodes should reserve # bytes.
- * - 0x160
- - \_\_le32
- - s\_flags
- - Miscellaneous flags. See the super_flags_ table for more info.
- * - 0x164
- - \_\_le16
- - s\_raid\_stride
- - RAID stride. This is the number of logical blocks read from or written
- to the disk before moving to the next disk. This affects the placement
- of filesystem metadata, which will hopefully make RAID storage faster.
- * - 0x166
- - \_\_le16
- - s\_mmp\_interval
- - #. seconds to wait in multi-mount prevention (MMP) checking. In theory,
- MMP is a mechanism to record in the superblock which host and device
- have mounted the filesystem, in order to prevent multiple mounts. This
- feature does not seem to be implemented...
- * - 0x168
- - \_\_le64
- - s\_mmp\_block
- - Block # for multi-mount protection data.
- * - 0x170
- - \_\_le32
- - s\_raid\_stripe\_width
- - RAID stripe width. This is the number of logical blocks read from or
- written to the disk before coming back to the current disk. This is used
- by the block allocator to try to reduce the number of read-modify-write
- operations in a RAID5/6.
- * - 0x174
- - \_\_u8
- - s\_log\_groups\_per\_flex
- - Size of a flexible block group is 2 ^ ``s_log_groups_per_flex``.
- * - 0x175
- - \_\_u8
- - s\_checksum\_type
- - Metadata checksum algorithm type. The only valid value is 1 (crc32c).
- * - 0x176
- - \_\_le16
- - s\_reserved\_pad
- -
- * - 0x178
- - \_\_le64
- - s\_kbytes\_written
- - Number of KiB written to this filesystem over its lifetime.
- * - 0x180
- - \_\_le32
- - s\_snapshot\_inum
- - inode number of active snapshot. (Not used in e2fsprogs/Linux.)
- * - 0x184
- - \_\_le32
- - s\_snapshot\_id
- - Sequential ID of active snapshot. (Not used in e2fsprogs/Linux.)
- * - 0x188
- - \_\_le64
- - s\_snapshot\_r\_blocks\_count
- - Number of blocks reserved for active snapshot's future use. (Not used in
- e2fsprogs/Linux.)
- * - 0x190
- - \_\_le32
- - s\_snapshot\_list
- - inode number of the head of the on-disk snapshot list. (Not used in
- e2fsprogs/Linux.)
- * - 0x194
- - \_\_le32
- - s\_error\_count
- - Number of errors seen.
- * - 0x198
- - \_\_le32
- - s\_first\_error\_time
- - First time an error happened, in seconds since the epoch.
- * - 0x19C
- - \_\_le32
- - s\_first\_error\_ino
- - inode involved in first error.
- * - 0x1A0
- - \_\_le64
- - s\_first\_error\_block
- - Number of block involved of first error.
- * - 0x1A8
- - \_\_u8
- - s\_first\_error\_func[32]
- - Name of function where the error happened.
- * - 0x1C8
- - \_\_le32
- - s\_first\_error\_line
- - Line number where error happened.
- * - 0x1CC
- - \_\_le32
- - s\_last\_error\_time
- - Time of most recent error, in seconds since the epoch.
- * - 0x1D0
- - \_\_le32
- - s\_last\_error\_ino
- - inode involved in most recent error.
- * - 0x1D4
- - \_\_le32
- - s\_last\_error\_line
- - Line number where most recent error happened.
- * - 0x1D8
- - \_\_le64
- - s\_last\_error\_block
- - Number of block involved in most recent error.
- * - 0x1E0
- - \_\_u8
- - s\_last\_error\_func[32]
- - Name of function where the most recent error happened.
- * - 0x200
- - \_\_u8
- - s\_mount\_opts[64]
- - ASCIIZ string of mount options.
- * - 0x240
- - \_\_le32
- - s\_usr\_quota\_inum
- - Inode number of user `quota <quota>`__ file.
- * - 0x244
- - \_\_le32
- - s\_grp\_quota\_inum
- - Inode number of group `quota <quota>`__ file.
- * - 0x248
- - \_\_le32
- - s\_overhead\_blocks
- - Overhead blocks/clusters in fs. (Huh? This field is always zero, which
- means that the kernel calculates it dynamically.)
- * - 0x24C
- - \_\_le32
- - s\_backup\_bgs[2]
- - Block groups containing superblock backups (if sparse\_super2)
- * - 0x254
- - \_\_u8
- - s\_encrypt\_algos[4]
- - Encryption algorithms in use. There can be up to four algorithms in use
- at any time; valid algorithm codes are given in the super_encrypt_ table
- below.
- * - 0x258
- - \_\_u8
- - s\_encrypt\_pw\_salt[16]
- - Salt for the string2key algorithm for encryption.
- * - 0x268
- - \_\_le32
- - s\_lpf\_ino
- - Inode number of lost+found
- * - 0x26C
- - \_\_le32
- - s\_prj\_quota\_inum
- - Inode that tracks project quotas.
- * - 0x270
- - \_\_le32
- - s\_checksum\_seed
- - Checksum seed used for metadata\_csum calculations. This value is
- crc32c(~0, $orig\_fs\_uuid).
- * - 0x274
- - \_\_u8
- - s\_wtime_hi
- - Upper 8 bits of the s_wtime field.
- * - 0x275
- - \_\_u8
- - s\_wtime_hi
- - Upper 8 bits of the s_mtime field.
- * - 0x276
- - \_\_u8
- - s\_mkfs_time_hi
- - Upper 8 bits of the s_mkfs_time field.
- * - 0x277
- - \_\_u8
- - s\_lastcheck_hi
- - Upper 8 bits of the s_lastcheck_hi field.
- * - 0x278
- - \_\_u8
- - s\_first_error_time_hi
- - Upper 8 bits of the s_first_error_time_hi field.
- * - 0x279
- - \_\_u8
- - s\_last_error_time_hi
- - Upper 8 bits of the s_last_error_time_hi field.
- * - 0x27A
- - \_\_u8[2]
- - s\_pad
- - Zero padding.
- * - 0x27C
- - \_\_le32
- - s\_reserved[96]
- - Padding to the end of the block.
- * - 0x3FC
- - \_\_le32
- - s\_checksum
- - Superblock checksum.
-
-.. _super_state:
-
-The superblock state is some combination of the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0x0001
- - Cleanly umounted
- * - 0x0002
- - Errors detected
- * - 0x0004
- - Orphans being recovered
-
-.. _super_errors:
-
-The superblock error policy is one of the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 1
- - Continue
- * - 2
- - Remount read-only
- * - 3
- - Panic
-
-.. _super_creator:
-
-The filesystem creator is one of the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0
- - Linux
- * - 1
- - Hurd
- * - 2
- - Masix
- * - 3
- - FreeBSD
- * - 4
- - Lites
-
-.. _super_revision:
-
-The superblock revision is one of the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0
- - Original format
- * - 1
- - v2 format w/ dynamic inode sizes
-
-Note that ``EXT4_DYNAMIC_REV`` refers to a revision 1 or newer filesystem.
-
-.. _super_compat:
-
-The superblock compatible features field is a combination of any of the
-following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0x1
- - Directory preallocation (COMPAT\_DIR\_PREALLOC).
- * - 0x2
- - “imagic inodes”. Not clear from the code what this does
- (COMPAT\_IMAGIC\_INODES).
- * - 0x4
- - Has a journal (COMPAT\_HAS\_JOURNAL).
- * - 0x8
- - Supports extended attributes (COMPAT\_EXT\_ATTR).
- * - 0x10
- - Has reserved GDT blocks for filesystem expansion
- (COMPAT\_RESIZE\_INODE). Requires RO\_COMPAT\_SPARSE\_SUPER.
- * - 0x20
- - Has directory indices (COMPAT\_DIR\_INDEX).
- * - 0x40
- - “Lazy BG”. Not in Linux kernel, seems to have been for uninitialized
- block groups? (COMPAT\_LAZY\_BG)
- * - 0x80
- - “Exclude inode”. Not used. (COMPAT\_EXCLUDE\_INODE).
- * - 0x100
- - “Exclude bitmap”. Seems to be used to indicate the presence of
- snapshot-related exclude bitmaps? Not defined in kernel or used in
- e2fsprogs (COMPAT\_EXCLUDE\_BITMAP).
- * - 0x200
- - Sparse Super Block, v2. If this flag is set, the SB field s\_backup\_bgs
- points to the two block groups that contain backup superblocks
- (COMPAT\_SPARSE\_SUPER2).
-
-.. _super_incompat:
-
-The superblock incompatible features field is a combination of any of the
-following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0x1
- - Compression (INCOMPAT\_COMPRESSION).
- * - 0x2
- - Directory entries record the file type. See ext4\_dir\_entry\_2 below
- (INCOMPAT\_FILETYPE).
- * - 0x4
- - Filesystem needs recovery (INCOMPAT\_RECOVER).
- * - 0x8
- - Filesystem has a separate journal device (INCOMPAT\_JOURNAL\_DEV).
- * - 0x10
- - Meta block groups. See the earlier discussion of this feature
- (INCOMPAT\_META\_BG).
- * - 0x40
- - Files in this filesystem use extents (INCOMPAT\_EXTENTS).
- * - 0x80
- - Enable a filesystem size of 2^64 blocks (INCOMPAT\_64BIT).
- * - 0x100
- - Multiple mount protection. Not implemented (INCOMPAT\_MMP).
- * - 0x200
- - Flexible block groups. See the earlier discussion of this feature
- (INCOMPAT\_FLEX\_BG).
- * - 0x400
- - Inodes can be used to store large extended attribute values
- (INCOMPAT\_EA\_INODE).
- * - 0x1000
- - Data in directory entry (INCOMPAT\_DIRDATA). (Not implemented?)
- * - 0x2000
- - Metadata checksum seed is stored in the superblock. This feature enables
- the administrator to change the UUID of a metadata\_csum filesystem
- while the filesystem is mounted; without it, the checksum definition
- requires all metadata blocks to be rewritten (INCOMPAT\_CSUM\_SEED).
- * - 0x4000
- - Large directory >2GB or 3-level htree (INCOMPAT\_LARGEDIR). Prior to
- this feature, directories could not be larger than 4GiB and could not
- have an htree more than 2 levels deep. If this feature is enabled,
- directories can be larger than 4GiB and have a maximum htree depth of 3.
- * - 0x8000
- - Data in inode (INCOMPAT\_INLINE\_DATA).
- * - 0x10000
- - Encrypted inodes are present on the filesystem. (INCOMPAT\_ENCRYPT).
-
-.. _super_rocompat:
-
-The superblock read-only compatible features field is a combination of any of
-the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0x1
- - Sparse superblocks. See the earlier discussion of this feature
- (RO\_COMPAT\_SPARSE\_SUPER).
- * - 0x2
- - This filesystem has been used to store a file greater than 2GiB
- (RO\_COMPAT\_LARGE\_FILE).
- * - 0x4
- - Not used in kernel or e2fsprogs (RO\_COMPAT\_BTREE\_DIR).
- * - 0x8
- - This filesystem has files whose sizes are represented in units of
- logical blocks, not 512-byte sectors. This implies a very large file
- indeed! (RO\_COMPAT\_HUGE\_FILE)
- * - 0x10
- - Group descriptors have checksums. In addition to detecting corruption,
- this is useful for lazy formatting with uninitialized groups
- (RO\_COMPAT\_GDT\_CSUM).
- * - 0x20
- - Indicates that the old ext3 32,000 subdirectory limit no longer applies
- (RO\_COMPAT\_DIR\_NLINK). A directory's i\_links\_count will be set to 1
- if it is incremented past 64,999.
- * - 0x40
- - Indicates that large inodes exist on this filesystem
- (RO\_COMPAT\_EXTRA\_ISIZE).
- * - 0x80
- - This filesystem has a snapshot (RO\_COMPAT\_HAS\_SNAPSHOT).
- * - 0x100
- - `Quota <Quota>`__ (RO\_COMPAT\_QUOTA).
- * - 0x200
- - This filesystem supports “bigalloc”, which means that file extents are
- tracked in units of clusters (of blocks) instead of blocks
- (RO\_COMPAT\_BIGALLOC).
- * - 0x400
- - This filesystem supports metadata checksumming.
- (RO\_COMPAT\_METADATA\_CSUM; implies RO\_COMPAT\_GDT\_CSUM, though
- GDT\_CSUM must not be set)
- * - 0x800
- - Filesystem supports replicas. This feature is neither in the kernel nor
- e2fsprogs. (RO\_COMPAT\_REPLICA)
- * - 0x1000
- - Read-only filesystem image; the kernel will not mount this image
- read-write and most tools will refuse to write to the image.
- (RO\_COMPAT\_READONLY)
- * - 0x2000
- - Filesystem tracks project quotas. (RO\_COMPAT\_PROJECT)
-
-.. _super_def_hash:
-
-The ``s_def_hash_version`` field is one of the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0x0
- - Legacy.
- * - 0x1
- - Half MD4.
- * - 0x2
- - Tea.
- * - 0x3
- - Legacy, unsigned.
- * - 0x4
- - Half MD4, unsigned.
- * - 0x5
- - Tea, unsigned.
-
-.. _super_mountopts:
-
-The ``s_default_mount_opts`` field is any combination of the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0x0001
- - Print debugging info upon (re)mount. (EXT4\_DEFM\_DEBUG)
- * - 0x0002
- - New files take the gid of the containing directory (instead of the fsgid
- of the current process). (EXT4\_DEFM\_BSDGROUPS)
- * - 0x0004
- - Support userspace-provided extended attributes. (EXT4\_DEFM\_XATTR\_USER)
- * - 0x0008
- - Support POSIX access control lists (ACLs). (EXT4\_DEFM\_ACL)
- * - 0x0010
- - Do not support 32-bit UIDs. (EXT4\_DEFM\_UID16)
- * - 0x0020
- - All data and metadata are commited to the journal.
- (EXT4\_DEFM\_JMODE\_DATA)
- * - 0x0040
- - All data are flushed to the disk before metadata are committed to the
- journal. (EXT4\_DEFM\_JMODE\_ORDERED)
- * - 0x0060
- - Data ordering is not preserved; data may be written after the metadata
- has been written. (EXT4\_DEFM\_JMODE\_WBACK)
- * - 0x0100
- - Disable write flushes. (EXT4\_DEFM\_NOBARRIER)
- * - 0x0200
- - Track which blocks in a filesystem are metadata and therefore should not
- be used as data blocks. This option will be enabled by default on 3.18,
- hopefully. (EXT4\_DEFM\_BLOCK\_VALIDITY)
- * - 0x0400
- - Enable DISCARD support, where the storage device is told about blocks
- becoming unused. (EXT4\_DEFM\_DISCARD)
- * - 0x0800
- - Disable delayed allocation. (EXT4\_DEFM\_NODELALLOC)
-
-.. _super_flags:
-
-The ``s_flags`` field is any combination of the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0x0001
- - Signed directory hash in use.
- * - 0x0002
- - Unsigned directory hash in use.
- * - 0x0004
- - To test development code.
-
-.. _super_encrypt:
-
-The ``s_encrypt_algos`` list can contain any of the following:
-
-.. list-table::
- :widths: 1 79
- :header-rows: 1
-
- * - Value
- - Description
- * - 0
- - Invalid algorithm (ENCRYPTION\_MODE\_INVALID).
- * - 1
- - 256-bit AES in XTS mode (ENCRYPTION\_MODE\_AES\_256\_XTS).
- * - 2
- - 256-bit AES in GCM mode (ENCRYPTION\_MODE\_AES\_256\_GCM).
- * - 3
- - 256-bit AES in CBC mode (ENCRYPTION\_MODE\_AES\_256\_CBC).
-
-Total size of the superblock is 1024 bytes.