diff options
Diffstat (limited to 'Documentation/filesystems/ext4/directory.rst')
-rw-r--r-- | Documentation/filesystems/ext4/directory.rst | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Documentation/filesystems/ext4/directory.rst b/Documentation/filesystems/ext4/directory.rst index 073940cc64ed..55f618b37144 100644 --- a/Documentation/filesystems/ext4/directory.rst +++ b/Documentation/filesystems/ext4/directory.rst | |||
@@ -121,6 +121,31 @@ The directory file type is one of the following values: | |||
121 | * - 0x7 | 121 | * - 0x7 |
122 | - Symbolic link. | 122 | - Symbolic link. |
123 | 123 | ||
124 | To support directories that are both encrypted and casefolded directories, we | ||
125 | must also include hash information in the directory entry. We append | ||
126 | ``ext4_extended_dir_entry_2`` to ``ext4_dir_entry_2`` except for the entries | ||
127 | for dot and dotdot, which are kept the same. The structure follows immediately | ||
128 | after ``name`` and is included in the size listed by ``rec_len`` If a directory | ||
129 | entry uses this extension, it may be up to 271 bytes. | ||
130 | |||
131 | .. list-table:: | ||
132 | :widths: 8 8 24 40 | ||
133 | :header-rows: 1 | ||
134 | |||
135 | * - Offset | ||
136 | - Size | ||
137 | - Name | ||
138 | - Description | ||
139 | * - 0x0 | ||
140 | - \_\_le32 | ||
141 | - hash | ||
142 | - The hash of the directory name | ||
143 | * - 0x4 | ||
144 | - \_\_le32 | ||
145 | - minor\_hash | ||
146 | - The minor hash of the directory name | ||
147 | |||
148 | |||
124 | In order to add checksums to these classic directory blocks, a phony | 149 | In order to add checksums to these classic directory blocks, a phony |
125 | ``struct ext4_dir_entry`` is placed at the end of each leaf block to | 150 | ``struct ext4_dir_entry`` is placed at the end of each leaf block to |
126 | hold the checksum. The directory entry is 12 bytes long. The inode | 151 | hold the checksum. The directory entry is 12 bytes long. The inode |
@@ -322,6 +347,8 @@ The directory hash is one of the following values: | |||
322 | - Half MD4, unsigned. | 347 | - Half MD4, unsigned. |
323 | * - 0x5 | 348 | * - 0x5 |
324 | - Tea, unsigned. | 349 | - Tea, unsigned. |
350 | * - 0x6 | ||
351 | - Siphash. | ||
325 | 352 | ||
326 | Interior nodes of an htree are recorded as ``struct dx_node``, which is | 353 | Interior nodes of an htree are recorded as ``struct dx_node``, which is |
327 | also the full length of a data block: | 354 | also the full length of a data block: |