Commit de7abd7b authored by Darrick J. Wong's avatar Darrick J. Wong Committed by Theodore Ts'o

docs: fix ext4 documentation table formatting problems

It turns out that the latex table formatters lay out table columns with
the exact proportional widths given in the table metadata, even if text
overflows outside the box.  This was not caught during the initial
import because the HTML renderers are smart enough to fudge the table.

Fix the table column width formatting problems in the data structures
and algorithms documentation so that we don't have squashed columns.
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent e5f09261
...@@ -30,7 +30,7 @@ Extended attributes, when stored after the inode, have a header ...@@ -30,7 +30,7 @@ Extended attributes, when stored after the inode, have a header
``ext4_xattr_ibody_header`` that is 4 bytes long: ``ext4_xattr_ibody_header`` that is 4 bytes long:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -47,7 +47,7 @@ The beginning of an extended attribute block is in ...@@ -47,7 +47,7 @@ The beginning of an extended attribute block is in
``struct ext4_xattr_header``, which is 32 bytes long: ``struct ext4_xattr_header``, which is 32 bytes long:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -92,7 +92,7 @@ entries must be stored in sorted order. The sort order is ...@@ -92,7 +92,7 @@ entries must be stored in sorted order. The sort order is
Attributes stored inside an inode do not need be stored in sorted order. Attributes stored inside an inode do not need be stored in sorted order.
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -157,7 +157,7 @@ attribute name index field is set, and matching string is removed from ...@@ -157,7 +157,7 @@ attribute name index field is set, and matching string is removed from
the key name. Here is a map of name index values to key prefixes: the key name. Here is a map of name index values to key prefixes:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Name Index * - Name Index
......
...@@ -28,7 +28,7 @@ of checksum. The checksum function is whatever the superblock describes ...@@ -28,7 +28,7 @@ of checksum. The checksum function is whatever the superblock describes
(crc32c as of October 2013) unless noted otherwise. (crc32c as of October 2013) unless noted otherwise.
.. list-table:: .. list-table::
:widths: 1 1 4 :widths: 20 8 50
:header-rows: 1 :header-rows: 1
* - Metadata * - Metadata
......
...@@ -34,7 +34,7 @@ is at most 263 bytes long, though on disk you'll need to reference ...@@ -34,7 +34,7 @@ is at most 263 bytes long, though on disk you'll need to reference
``dirent.rec_len`` to know for sure. ``dirent.rec_len`` to know for sure.
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -66,7 +66,7 @@ tree traversal. This format is ``ext4_dir_entry_2``, which is at most ...@@ -66,7 +66,7 @@ tree traversal. This format is ``ext4_dir_entry_2``, which is at most
``dirent.rec_len`` to know for sure. ``dirent.rec_len`` to know for sure.
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -99,7 +99,7 @@ tree traversal. This format is ``ext4_dir_entry_2``, which is at most ...@@ -99,7 +99,7 @@ tree traversal. This format is ``ext4_dir_entry_2``, which is at most
The directory file type is one of the following values: The directory file type is one of the following values:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -130,7 +130,7 @@ in the place where the name normally goes. The structure is ...@@ -130,7 +130,7 @@ in the place where the name normally goes. The structure is
``struct ext4_dir_entry_tail``: ``struct ext4_dir_entry_tail``:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -212,7 +212,7 @@ The root of the htree is in ``struct dx_root``, which is the full length ...@@ -212,7 +212,7 @@ The root of the htree is in ``struct dx_root``, which is the full length
of a data block: of a data block:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -305,7 +305,7 @@ of a data block: ...@@ -305,7 +305,7 @@ of a data block:
The directory hash is one of the following values: The directory hash is one of the following values:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -327,7 +327,7 @@ Interior nodes of an htree are recorded as ``struct dx_node``, which is ...@@ -327,7 +327,7 @@ Interior nodes of an htree are recorded as ``struct dx_node``, which is
also the full length of a data block: also the full length of a data block:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -375,7 +375,7 @@ The hash maps that exist in both ``struct dx_root`` and ...@@ -375,7 +375,7 @@ The hash maps that exist in both ``struct dx_root`` and
long: long:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -405,7 +405,7 @@ directory index (which will ensure that there's space for the checksum. ...@@ -405,7 +405,7 @@ directory index (which will ensure that there's space for the checksum.
The dx\_tail structure is 8 bytes long and looks like this: The dx\_tail structure is 8 bytes long and looks like this:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
......
...@@ -43,7 +43,7 @@ entire bitmap. ...@@ -43,7 +43,7 @@ entire bitmap.
The block group descriptor is laid out in ``struct ext4_group_desc``. The block group descriptor is laid out in ``struct ext4_group_desc``.
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -157,7 +157,7 @@ The block group descriptor is laid out in ``struct ext4_group_desc``. ...@@ -157,7 +157,7 @@ The block group descriptor is laid out in ``struct ext4_group_desc``.
Block group flags can be any combination of the following: Block group flags can be any combination of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
......
...@@ -68,7 +68,7 @@ The extent tree header is recorded in ``struct ext4_extent_header``, ...@@ -68,7 +68,7 @@ The extent tree header is recorded in ``struct ext4_extent_header``,
which is 12 bytes long: which is 12 bytes long:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -104,7 +104,7 @@ Internal nodes of the extent tree, also known as index nodes, are ...@@ -104,7 +104,7 @@ Internal nodes of the extent tree, also known as index nodes, are
recorded as ``struct ext4_extent_idx``, and are 12 bytes long: recorded as ``struct ext4_extent_idx``, and are 12 bytes long:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -134,7 +134,7 @@ Leaf nodes of the extent tree are recorded as ``struct ext4_extent``, ...@@ -134,7 +134,7 @@ Leaf nodes of the extent tree are recorded as ``struct ext4_extent``,
and are also 12 bytes long: and are also 12 bytes long:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -174,7 +174,7 @@ including) the checksum itself. ...@@ -174,7 +174,7 @@ including) the checksum itself.
``struct ext4_extent_tail`` is 4 bytes long: ``struct ext4_extent_tail`` is 4 bytes long:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
......
...@@ -29,8 +29,9 @@ and the inode structure itself. ...@@ -29,8 +29,9 @@ and the inode structure itself.
The inode table entry is laid out in ``struct ext4_inode``. The inode table entry is laid out in ``struct ext4_inode``.
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
:class: longtable
* - Offset * - Offset
- Size - Size
...@@ -176,7 +177,7 @@ The inode table entry is laid out in ``struct ext4_inode``. ...@@ -176,7 +177,7 @@ The inode table entry is laid out in ``struct ext4_inode``.
The ``i_mode`` value is a combination of the following flags: The ``i_mode`` value is a combination of the following flags:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -227,7 +228,7 @@ The ``i_mode`` value is a combination of the following flags: ...@@ -227,7 +228,7 @@ The ``i_mode`` value is a combination of the following flags:
The ``i_flags`` field is a combination of these values: The ``i_flags`` field is a combination of these values:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -314,7 +315,7 @@ The ``osd1`` field has multiple meanings depending on the creator: ...@@ -314,7 +315,7 @@ The ``osd1`` field has multiple meanings depending on the creator:
Linux: Linux:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -331,7 +332,7 @@ Linux: ...@@ -331,7 +332,7 @@ Linux:
Hurd: Hurd:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -346,7 +347,7 @@ Hurd: ...@@ -346,7 +347,7 @@ Hurd:
Masix: Masix:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -365,7 +366,7 @@ The ``osd2`` field has multiple meanings depending on the filesystem creator: ...@@ -365,7 +366,7 @@ The ``osd2`` field has multiple meanings depending on the filesystem creator:
Linux: Linux:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -402,7 +403,7 @@ Linux: ...@@ -402,7 +403,7 @@ Linux:
Hurd: Hurd:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -433,7 +434,7 @@ Hurd: ...@@ -433,7 +434,7 @@ Hurd:
Masix: Masix:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
......
...@@ -48,7 +48,7 @@ Layout ...@@ -48,7 +48,7 @@ Layout
Generally speaking, the journal has this format: Generally speaking, the journal has this format:
.. list-table:: .. list-table::
:widths: 1 1 78 :widths: 16 48 16
:header-rows: 1 :header-rows: 1
* - Superblock * - Superblock
...@@ -76,7 +76,7 @@ The journal superblock will be in the next full block after the ...@@ -76,7 +76,7 @@ The journal superblock will be in the next full block after the
superblock. superblock.
.. list-table:: .. list-table::
:widths: 1 1 1 1 76 :widths: 12 12 12 32 12
:header-rows: 1 :header-rows: 1
* - 1024 bytes of padding * - 1024 bytes of padding
...@@ -98,7 +98,7 @@ Every block in the journal starts with a common 12-byte header ...@@ -98,7 +98,7 @@ Every block in the journal starts with a common 12-byte header
``struct journal_header_s``: ``struct journal_header_s``:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -124,7 +124,7 @@ Every block in the journal starts with a common 12-byte header ...@@ -124,7 +124,7 @@ Every block in the journal starts with a common 12-byte header
The journal block type can be any one of: The journal block type can be any one of:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -154,7 +154,7 @@ The journal superblock is recorded as ``struct journal_superblock_s``, ...@@ -154,7 +154,7 @@ The journal superblock is recorded as ``struct journal_superblock_s``,
which is 1024 bytes long: which is 1024 bytes long:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -264,7 +264,7 @@ which is 1024 bytes long: ...@@ -264,7 +264,7 @@ which is 1024 bytes long:
The journal compat features are any combination of the following: The journal compat features are any combination of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -278,7 +278,7 @@ The journal compat features are any combination of the following: ...@@ -278,7 +278,7 @@ The journal compat features are any combination of the following:
The journal incompat features are any combination of the following: The journal incompat features are any combination of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -306,7 +306,7 @@ Journal checksum type codes are one of the following. crc32 or crc32c are the ...@@ -306,7 +306,7 @@ Journal checksum type codes are one of the following. crc32 or crc32c are the
most likely choices. most likely choices.
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -330,7 +330,7 @@ described by a data structure, but here is the block structure anyway. ...@@ -330,7 +330,7 @@ described by a data structure, but here is the block structure anyway.
Descriptor blocks consume at least 36 bytes, but use a full block: Descriptor blocks consume at least 36 bytes, but use a full block:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -355,7 +355,7 @@ defined as ``struct journal_block_tag3_s``, which looks like the ...@@ -355,7 +355,7 @@ defined as ``struct journal_block_tag3_s``, which looks like the
following. The size is 16 or 32 bytes. following. The size is 16 or 32 bytes.
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -400,7 +400,7 @@ following. The size is 16 or 32 bytes. ...@@ -400,7 +400,7 @@ following. The size is 16 or 32 bytes.
The journal tag flags are any combination of the following: The journal tag flags are any combination of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -421,7 +421,7 @@ is defined as ``struct journal_block_tag_s``, which looks like the ...@@ -421,7 +421,7 @@ is defined as ``struct journal_block_tag_s``, which looks like the
following. The size is 8, 12, 24, or 28 bytes: following. The size is 8, 12, 24, or 28 bytes:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -471,7 +471,7 @@ JBD2\_FEATURE\_INCOMPAT\_CSUM\_V3 are set, the end of the block is a ...@@ -471,7 +471,7 @@ JBD2\_FEATURE\_INCOMPAT\_CSUM\_V3 are set, the end of the block is a
``struct jbd2_journal_block_tail``, which looks like this: ``struct jbd2_journal_block_tail``, which looks like this:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -513,7 +513,7 @@ Revocation blocks are described in ...@@ -513,7 +513,7 @@ Revocation blocks are described in
length, but use a full block: length, but use a full block:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -543,7 +543,7 @@ JBD2\_FEATURE\_INCOMPAT\_CSUM\_V3 are set, the end of the revocation ...@@ -543,7 +543,7 @@ JBD2\_FEATURE\_INCOMPAT\_CSUM\_V3 are set, the end of the revocation
block is a ``struct jbd2_journal_revoke_tail``, which has this format: block is a ``struct jbd2_journal_revoke_tail``, which has this format:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -567,7 +567,7 @@ The commit block is described by ``struct commit_header``, which is 32 ...@@ -567,7 +567,7 @@ The commit block is described by ``struct commit_header``, which is 32
bytes long (but uses a full block): bytes long (but uses a full block):
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
......
...@@ -32,7 +32,7 @@ The checksum is calculated against the FS UUID and the MMP structure. ...@@ -32,7 +32,7 @@ The checksum is calculated against the FS UUID and the MMP structure.
The MMP structure (``struct mmp_struct``) is as follows: The MMP structure (``struct mmp_struct``) is as follows:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 12 20 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
......
...@@ -6,7 +6,7 @@ Special inodes ...@@ -6,7 +6,7 @@ Special inodes
ext4 reserves some inode for special features, as follows: ext4 reserves some inode for special features, as follows:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 6 70
:header-rows: 1 :header-rows: 1
* - inode Number * - inode Number
......
...@@ -19,7 +19,7 @@ The ext4 superblock is laid out as follows in ...@@ -19,7 +19,7 @@ The ext4 superblock is laid out as follows in
``struct ext4_super_block``: ``struct ext4_super_block``:
.. list-table:: .. list-table::
:widths: 1 1 1 77 :widths: 8 8 24 40
:header-rows: 1 :header-rows: 1
* - Offset * - Offset
...@@ -483,7 +483,7 @@ The ext4 superblock is laid out as follows in ...@@ -483,7 +483,7 @@ The ext4 superblock is laid out as follows in
The superblock state is some combination of the following: The superblock state is some combination of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 8 72
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -500,7 +500,7 @@ The superblock state is some combination of the following: ...@@ -500,7 +500,7 @@ The superblock state is some combination of the following:
The superblock error policy is one of the following: The superblock error policy is one of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 8 72
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -517,7 +517,7 @@ The superblock error policy is one of the following: ...@@ -517,7 +517,7 @@ The superblock error policy is one of the following:
The filesystem creator is one of the following: The filesystem creator is one of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 8 72
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -538,7 +538,7 @@ The filesystem creator is one of the following: ...@@ -538,7 +538,7 @@ The filesystem creator is one of the following:
The superblock revision is one of the following: The superblock revision is one of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 8 72
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -556,7 +556,7 @@ The superblock compatible features field is a combination of any of the ...@@ -556,7 +556,7 @@ The superblock compatible features field is a combination of any of the
following: following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -595,7 +595,7 @@ The superblock incompatible features field is a combination of any of the ...@@ -595,7 +595,7 @@ The superblock incompatible features field is a combination of any of the
following: following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -647,7 +647,7 @@ The superblock read-only compatible features field is a combination of any of ...@@ -647,7 +647,7 @@ The superblock read-only compatible features field is a combination of any of
the following: the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 16 64
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -702,7 +702,7 @@ the following: ...@@ -702,7 +702,7 @@ the following:
The ``s_def_hash_version`` field is one of the following: The ``s_def_hash_version`` field is one of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 8 72
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -725,7 +725,7 @@ The ``s_def_hash_version`` field is one of the following: ...@@ -725,7 +725,7 @@ The ``s_def_hash_version`` field is one of the following:
The ``s_default_mount_opts`` field is any combination of the following: The ``s_default_mount_opts`` field is any combination of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 8 72
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -767,7 +767,7 @@ The ``s_default_mount_opts`` field is any combination of the following: ...@@ -767,7 +767,7 @@ The ``s_default_mount_opts`` field is any combination of the following:
The ``s_flags`` field is any combination of the following: The ``s_flags`` field is any combination of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 8 72
:header-rows: 1 :header-rows: 1
* - Value * - Value
...@@ -784,7 +784,7 @@ The ``s_flags`` field is any combination of the following: ...@@ -784,7 +784,7 @@ The ``s_flags`` field is any combination of the following:
The ``s_encrypt_algos`` list can contain any of the following: The ``s_encrypt_algos`` list can contain any of the following:
.. list-table:: .. list-table::
:widths: 1 79 :widths: 8 72
:header-rows: 1 :header-rows: 1
* - Value * - Value
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment