€•�ÂŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ*/translations/zh_CN/filesystems/ext4/ifork”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/zh_TW/filesystems/ext4/ifork”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/it_IT/filesystems/ext4/ifork”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ja_JP/filesystems/ext4/ifork”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ko_KR/filesystems/ext4/ifork”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/pt_BR/filesystems/ext4/ifork”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/sp_SP/filesystems/ext4/ifork”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒD/var/lib/git/docbuild/linux/Documentation/filesystems/ext4/ifork.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒThe Contents of inode.i_block”h]”hŒThe Contents of inode.i_block”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hX Depending on the type of file an inode describes, the 60 bytes of storage in ``inode.i_block`` can be used in different ways. In general, regular files and directories will use it for file block indexing information, and special files will use it for special purposes.”h]”(hŒMDepending on the type of file an inode describes, the 60 bytes of storage in ”…”�”}”(hhßh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``inode.i_block``”h]”hŒ inode.i_block”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhßubhŒ® can be used in different ways. In general, regular files and directories will use it for file block indexing information, and special files will use it for special purposes.”…”�”}”(hhßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSymbolic Links”h]”hŒSymbolic Links”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´K ubhÞ)�”}”(hŒÒThe target of a symbolic link will be stored in this field if the target string is less than 60 bytes long. Otherwise, either extents or block maps will be used to allocate data blocks to store the link target.”h]”hŒÒThe target of a symbolic link will be stored in this field if the target string is less than 60 bytes long. Otherwise, either extents or block maps will be used to allocate data blocks to store the link target.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjh²hubeh}”(h]”Œsymbolic-links”ah ]”h"]”Œsymbolic links”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Direct/Indirect Block Addressing”h]”hŒ Direct/Indirect Block Addressing”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj(h²hh³hÇh´KubhÞ)�”}”(hX€In ext2/3, file block numbers were mapped to logical block numbers by means of an (up to) three level 1-1 block map. To find the logical block that stores a particular file block, the code would navigate through this increasingly complicated structure. Notice that there is neither a magic number nor a checksum to provide any level of confidence that the block isn't full of garbage.”h]”hX‚In ext2/3, file block numbers were mapped to logical block numbers by means of an (up to) three level 1-1 block map. To find the logical block that stores a particular file block, the code would navigate through this increasingly complicated structure. Notice that there is neither a magic number nor a checksum to provide any level of confidence that the block isn’t full of garbage.”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj(h²hubŒsphinx.ext.ifconfig”Œifconfig”“”)�”}”(hhh]”(h¶)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hjMsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhjJh²hh³Œ+Documentation/filesystems/ext4/blockmap.rst”h´KubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jfhjcubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”KÞuh1jfhjcubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒi.i_block Offset”h]”hŒi.i_block Offset”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjƒubj‡)�”}”(hhh]”hÞ)�”}”(hŒWhere It Points”h]”hŒWhere It Points”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´KhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjcubhŒtbody”“”)�”}”(hhh]”(j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0 to 11”h]”hŒ0 to 11”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´KhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÇubj‡)�”}”(hhh]”hÞ)�”}”(hŒ"Direct map to file blocks 0 to 11.”h]”hŒ"Direct map to file blocks 0 to 11.”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjáubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÄubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ12”h]”hŒ12”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjþubj‡)�”}”(hhh]”(hÞ)�”}”(hŒ\Indirect block: (file blocks 12 to (``$block_size`` / 4) + 11, or 12 to 1035 if 4KiB blocks)”h]”(hŒ$Indirect block: (file blocks 12 to (”…”�”}”(hjh²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjubhŒ) / 4) + 11, or 12 to 1035 if 4KiB blocks)”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jfhj>ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”KDuh1jfhj>ubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒIndirect Block Offset”h]”hŒIndirect Block Offset”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjXubj‡)�”}”(hhh]”hÞ)�”}”(hŒWhere It Points”h]”hŒWhere It Points”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj>ubjÃ)�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0 to (``$block_size`` / 4)”h]”(hŒ0 to (”…”�”}”(hjžh²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjžubhŒ / 4)”…”�”}”(hjžh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj˜ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ@Direct map to (``$block_size`` / 4) blocks (1024 if 4KiB blocks)”h]”(hŒDirect map to (”…”�”}”(hjÇh²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÇubhŒ" / 4) blocks (1024 if 4KiB blocks)”…”�”}”(hjÇh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K hjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj>ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j\hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j†hjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÄubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ13”h]”hŒ13”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubj‡)�”}”(hhh]”(hÞ)�”}”(hŒ˜Double-indirect block: (file blocks ``$block_size``/4 + 12 to (``$block_size`` / 4) ^ 2 + (``$block_size`` / 4) + 11, or 1036 to 1049611 if 4KiB blocks)”h]”(hŒ$Double-indirect block: (file blocks ”…”�”}”(hj/h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj/ubhŒ /4 + 12 to (”…”�”}”(hj/h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj/ubhŒ / 4) ^ 2 + (”…”�”}”(hj/h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj/ubhŒ. / 4) + 11, or 1036 to 1049611 if 4KiB blocks)”…”�”}”(hj/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khj,ubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jfhjvubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kiuh1jfhjvubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒDouble Indirect Block Offset”h]”hŒDouble Indirect Block Offset”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj�ubj‡)�”}”(hhh]”hÞ)�”}”(hŒWhere It Points”h]”hŒWhere It Points”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjªubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjvubjÃ)�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0 to (``$block_size`` / 4)”h]”(hŒ0 to (”…”�”}”(hjÖh²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÖubhŒ / 4)”…”�”}”(hjÖh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´KhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÐubj‡)�”}”(hhh]”(hÞ)�”}”(hŒBMap to (``$block_size`` / 4) indirect blocks (1024 if 4KiB blocks)”h]”(hŒMap to (”…”�”}”(hjÿh²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÿubhŒ+ / 4) indirect blocks (1024 if 4KiB blocks)”…”�”}”(hjÿh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjüubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jfhj"ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”KDuh1jfhj"ubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒIndirect Block Offset”h]”hŒIndirect Block Offset”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj<ubj‡)�”}”(hhh]”hÞ)�”}”(hŒWhere It Points”h]”hŒWhere It Points”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´KhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj"ubjÃ)�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0 to (``$block_size`` / 4)”h]”(hŒ0 to (”…”�”}”(hj‚h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj‚ubhŒ / 4)”…”�”}”(hj‚h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj|ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ@Direct map to (``$block_size`` / 4) blocks (1024 if 4KiB blocks)”h]”(hŒDirect map to (”…”�”}”(hj«h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj«ubhŒ" / 4) blocks (1024 if 4KiB blocks)”…”�”}”(hj«h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahjubah}”(h]”h ]”h"]”h$]”h&]”uh1j\hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjvubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahjsubah}”(h]”h ]”h"]”h$]”h&]”uh1j\hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÄubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ14”h]”hŒ14”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubj‡)�”}”(hhh]”(hÞ)�”}”(hŒÚTriple-indirect block: (file blocks (``$block_size`` / 4) ^ 2 + (``$block_size`` / 4) + 12 to (``$block_size`` / 4) ^ 3 + (``$block_size`` / 4) ^ 2 + (``$block_size`` / 4) + 12, or 1049612 to 1074791436 if 4KiB blocks)”h]”(hŒ%Triple-indirect block: (file blocks (”…”�”}”(hj2h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj2ubhŒ / 4) ^ 2 + (”…”�”}”(hj2h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj2ubhŒ / 4) + 12 to (”…”�”}”(hj2h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj2ubhŒ / 4) ^ 3 + (”…”�”}”(hj2h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj2ubhŒ / 4) ^ 2 + (”…”�”}”hj2sbhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj2ubhŒ4 / 4) + 12, or 1049612 to 1074791436 if 4KiB blocks)”…”�”}”(hj2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´Khj/ubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jfhj�ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K�uh1jfhj�ubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒTriple Indirect Block Offset”h]”hŒTriple Indirect Block Offset”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K!hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj·ubj‡)�”}”(hhh]”hÞ)�”}”(hŒWhere It Points”h]”hŒWhere It Points”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K!hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj�ubjÃ)�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0 to (``$block_size`` / 4)”h]”(hŒ0 to (”…”�”}”(hjýh²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjýubhŒ / 4)”…”�”}”(hjýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K#hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj÷ubj‡)�”}”(hhh]”(hÞ)�”}”(hŒIMap to (``$block_size`` / 4) double indirect blocks (1024 if 4KiB blocks)”h]”(hŒMap to (”…”�”}”(hj&h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj&ubhŒ2 / 4) double indirect blocks (1024 if 4KiB blocks)”…”�”}”(hj&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K#hj#ubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jfhjIubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kiuh1jfhjIubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒDouble Indirect Block Offset”h]”hŒDouble Indirect Block Offset”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K&hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjcubj‡)�”}”(hhh]”hÞ)�”}”(hŒWhere It Points”h]”hŒWhere It Points”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K&hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjIubjÃ)�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0 to (``$block_size`` / 4)”h]”(hŒ0 to (”…”�”}”(hj©h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj©ubhŒ / 4)”…”�”}”(hj©h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K(hj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj£ubj‡)�”}”(hhh]”(hÞ)�”}”(hŒBMap to (``$block_size`` / 4) indirect blocks (1024 if 4KiB blocks)”h]”(hŒMap to (”…”�”}”(hjÒh²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÒubhŒ+ / 4) indirect blocks (1024 if 4KiB blocks)”…”�”}”(hjÒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K(hjÏubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jfhjõubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”KDuh1jfhjõubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒIndirect Block Offset”h]”hŒIndirect Block Offset”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K+hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubj‡)�”}”(hhh]”hÞ)�”}”(hŒWhere It Points”h]”hŒWhere It Points”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K+hj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjõubjÃ)�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0 to (``$block_size`` / 4)”h]”(hŒ0 to (”…”�”}”(hjUh²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjUubhŒ / 4)”…”�”}”(hjUh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K-hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjOubj‡)�”}”(hhh]”hÞ)�”}”(hŒ@Direct map to (``$block_size`` / 4) blocks (1024 if 4KiB blocks)”h]”(hŒDirect map to (”…”�”}”(hj~h²hh³Nh´Nubhè)�”}”(hŒ``$block_size``”h]”hŒ $block_size”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj~ubhŒ" / 4) blocks (1024 if 4KiB blocks)”…”�”}”(hj~h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j[h´K-hj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjõubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahjòubah}”(h]”h ]”h"]”h$]”h&]”uh1j\hjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1j†hj£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjIubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahjFubah}”(h]”h ]”h"]”h$]”h&]”uh1j\hj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j†hj÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj�ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahjšubah}”(h]”h ]”h"]”h$]”h&]”uh1j\hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjcubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j\hjJh²hh³j[h´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œexpr”Œbuilder != 'latex'”uh1jHh²hh³hÇh´Khj(ubjI)�”}”(hhh]”hÞ)�”}”(hŒ<[Table omitted because LaTeX doesn't support nested tables.]”h]”hŒ>[Table omitted because LaTeX doesn’t support nested tables.]”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K"hj"h²hubah}”(h]”h ]”h"]”h$]”h&]”j Œbuilder == 'latex'”uh1jHh²hh³hÇh´K hj(ubhÞ)�”}”(hŒÒNote that with this block mapping scheme, it is necessary to fill out a lot of mapping data even for a large contiguous file! This inefficiency led to the creation of the extent mapping scheme, discussed below.”h]”hŒÒNote that with this block mapping scheme, it is necessary to fill out a lot of mapping data even for a large contiguous file! This inefficiency led to the creation of the extent mapping scheme, discussed below.”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K$hj(h²hubhÞ)�”}”(hŒ[Notice also that a file using this mapping scheme cannot be placed higher than 2^32 blocks.”h]”hŒ[Notice also that a file using this mapping scheme cannot be placed higher than 2^32 blocks.”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K(hj(h²hubeh}”(h]”Œ direct-indirect-block-addressing”ah ]”h"]”Œ direct/indirect block addressing”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Extent Tree”h]”hŒ Extent Tree”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj^h²hh³hÇh´K,ubhÞ)�”}”(hX0In ext4, the file to logical block map has been replaced with an extent tree. Under the old scheme, allocating a contiguous run of 1,000 blocks requires an indirect block to map all 1,000 entries; with extents, the mapping is reduced to a single ``struct ext4_extent`` with ``ee_len = 1000``. If flex_bg is enabled, it is possible to allocate very large files with a single extent, at a considerable reduction in metadata block use, and some improvement in disk efficiency. The inode must have the extents flag (0x80000) flag set for this feature to be in use.”h]”(hŒöIn ext4, the file to logical block map has been replaced with an extent tree. Under the old scheme, allocating a contiguous run of 1,000 blocks requires an indirect block to map all 1,000 entries; with extents, the mapping is reduced to a single ”…”�”}”(hjoh²hh³Nh´Nubhè)�”}”(hŒ``struct ext4_extent``”h]”hŒstruct ext4_extent”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjoubhŒ with ”…”�”}”(hjoh²hh³Nh´Nubhè)�”}”(hŒ``ee_len = 1000``”h]”hŒ ee_len = 1000”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjoubhX . If flex_bg is enabled, it is possible to allocate very large files with a single extent, at a considerable reduction in metadata block use, and some improvement in disk efficiency. The inode must have the extents flag (0x80000) flag set for this feature to be in use.”…”�”}”(hjoh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K.hj^h²hubhÞ)�”}”(hX¢Extents are arranged as a tree. Each node of the tree begins with a ``struct ext4_extent_header``. If the node is an interior node (``eh.eh_depth`` > 0), the header is followed by ``eh.eh_entries`` instances of ``struct ext4_extent_idx``; each of these index entries points to a block containing more nodes in the extent tree. If the node is a leaf node (``eh.eh_depth == 0``), then the header is followed by ``eh.eh_entries`` instances of ``struct ext4_extent``; these instances point to the file's data blocks. The root node of the extent tree is stored in ``inode.i_block``, which allows for the first four extents to be recorded without the use of extra metadata blocks.”h]”(hŒDExtents are arranged as a tree. Each node of the tree begins with a ”…”�”}”(hj¡h²hh³Nh´Nubhè)�”}”(hŒ``struct ext4_extent_header``”h]”hŒstruct ext4_extent_header”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¡ubhŒ#. If the node is an interior node (”…”�”}”(hj¡h²hh³Nh´Nubhè)�”}”(hŒ``eh.eh_depth``”h]”hŒ eh.eh_depth”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¡ubhŒ! > 0), the header is followed by ”…”�”}”(hj¡h²hh³Nh´Nubhè)�”}”(hŒ``eh.eh_entries``”h]”hŒ eh.eh_entries”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¡ubhŒ instances of ”…”�”}”(hj¡h²hh³Nh´Nubhè)�”}”(hŒ``struct ext4_extent_idx``”h]”hŒstruct ext4_extent_idx”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¡ubhŒv; each of these index entries points to a block containing more nodes in the extent tree. If the node is a leaf node (”…”�”}”(hj¡h²hh³Nh´Nubhè)�”}”(hŒ``eh.eh_depth == 0``”h]”hŒeh.eh_depth == 0”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¡ubhŒ"), then the header is followed by ”…”�”}”(hj¡h²hh³Nh´Nubhè)�”}”(hŒ``eh.eh_entries``”h]”hŒ eh.eh_entries”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¡ubhŒ instances of ”…”�”}”(hj¡h²hh³Nh´Nubhè)�”}”(hŒ``struct ext4_extent``”h]”hŒstruct ext4_extent”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¡ubhŒc; these instances point to the file’s data blocks. The root node of the extent tree is stored in ”…”�”}”(hj¡h²hh³Nh´Nubhè)�”}”(hŒ``inode.i_block``”h]”hŒ inode.i_block”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¡ubhŒb, which allows for the first four extents to be recorded without the use of extra metadata blocks.”…”�”}”(hj¡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K8hj^h²hubhÞ)�”}”(hŒ\The extent tree header is recorded in ``struct ext4_extent_header``, which is 12 bytes long:”h]”(hŒ&The extent tree header is recorded in ”…”�”}”(hj? h²hh³Nh´Nubhè)�”}”(hŒ``struct ext4_extent_header``”h]”hŒstruct ext4_extent_header”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj? ubhŒ, which is 12 bytes long:”…”�”}”(hj? h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KChj^h²hubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jfhjb ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhjb ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhjb ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn K(uh1jfhjb ubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hj“ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KJhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj� ubj‡)�”}”(hhh]”hÞ)�”}”(hŒSize”h]”hŒSize”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KKhj§ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj� ubj‡)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hjÁ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KLhj¾ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj� ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KMhjÕ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjŠ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjb ubjÃ)�”}”(hhh]”(j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x0”h]”hŒ0x0”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KNhjþ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjû ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le16”h]”hŒ__le16”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KOhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjû ubj‡)�”}”(hhh]”hÞ)�”}”(hŒeh_magic”h]”hŒeh_magic”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KPhj, ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjû ubj‡)�”}”(hhh]”hÞ)�”}”(hŒMagic number, 0xF30A.”h]”hŒMagic number, 0xF30A.”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KQhjC ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjû ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjø ubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x2”h]”hŒ0x2”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KRhjc ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj` ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le16”h]”hŒ__le16”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KShjz ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj` ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ eh_entries”h]”hŒ eh_entries”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KThj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj` ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ-Number of valid entries following the header.”h]”hŒ-Number of valid entries following the header.”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KUhj¨ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj` ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjø ubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x4”h]”hŒ0x4”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KVhjÈ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÅ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le16”h]”hŒ__le16”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KWhjß ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÅ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒeh_max”h]”hŒeh_max”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KXhjö ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÅ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ7Maximum number of entries that could follow the header.”h]”hŒ7Maximum number of entries that could follow the header.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KYhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÅ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjø ubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x6”h]”hŒ0x6”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KZhj- ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj* ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le16”h]”hŒ__le16”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K[hjD ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj* ubj‡)�”}”(hhh]”hÞ)�”}”(hŒeh_depth”h]”hŒeh_depth”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K\hj[ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj* ubj‡)�”}”(hhh]”hÞ)�”}”(hXEDepth of this extent node in the extent tree. 0 = this extent node points to data blocks; otherwise, this extent node points to other extent nodes. The extent tree can be at most 5 levels deep: a logical block number can be at most ``2^32``, and the smallest ``n`` that satisfies ``4*(((blocksize - 12)/12)^n) >= 2^32`` is 5.”h]”(hŒèDepth of this extent node in the extent tree. 0 = this extent node points to data blocks; otherwise, this extent node points to other extent nodes. The extent tree can be at most 5 levels deep: a logical block number can be at most ”…”�”}”(hju h²hh³Nh´Nubhè)�”}”(hŒ``2^32``”h]”hŒ2^32”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhju ubhŒ, and the smallest ”…”�”}”(hju h²hh³Nh´Nubhè)�”}”(hŒ``n``”h]”hŒn”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhju ubhŒ that satisfies ”…”�”}”(hju h²hh³Nh´Nubhè)�”}”(hŒ'``4*(((blocksize - 12)/12)^n) >= 2^32``”h]”hŒ#4*(((blocksize - 12)/12)^n) >= 2^32”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhju ubhŒ is 5.”…”�”}”(hju h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K]hjr ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj* ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjø ubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x8”h]”hŒ0x8”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KbhjÈ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÅ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le32”h]”hŒ__le32”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kchjß ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÅ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ eh_generation”h]”hŒ eh_generation”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kdhjö ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÅ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ@Generation of the tree. (Used by Lustre, but not standard ext4).”h]”hŒ@Generation of the tree. (Used by Lustre, but not standard ext4).”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kehj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÅ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjø ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjb ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahj_ ubah}”(h]”h ]”Œcolwidths-given”ah"]”h$]”h&]”uh1j\hj^h²hh³Nh´NubhÞ)�”}”(hŒ€Internal nodes of the extent tree, also known as index nodes, are recorded as ``struct ext4_extent_idx``, and are 12 bytes long:”h]”(hŒNInternal nodes of the extent tree, also known as index nodes, are recorded as ”…”�”}”(hj> h²hh³Nh´Nubhè)�”}”(hŒ``struct ext4_extent_idx``”h]”hŒstruct ext4_extent_idx”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj> ubhŒ, and are 12 bytes long:”…”�”}”(hj> h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kghj^h²hubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhja ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhja ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhja ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn K(uh1jfhja ubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hj‘ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KnhjŽ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj‹ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒSize”h]”hŒSize”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kohj¥ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj‹ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kphj¼ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj‹ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KqhjÓ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj‹ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hja ubjÃ)�”}”(hhh]”(j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x0”h]”hŒ0x0”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Krhjü ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjù ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le32”h]”hŒ__le32”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kshj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjù ubj‡)�”}”(hhh]”hÞ)�”}”(hŒei_block”h]”hŒei_block”…”�”}”(hj- h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kthj* ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjù ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ7This index node covers file blocks from 'block' onward.”h]”hŒ;This index node covers file blocks from ‘block’ onward.”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KuhjA ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjù ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjö ubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x4”h]”hŒ0x4”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kvhja ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj^ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le32”h]”hŒ__le32”…”�”}”(hj{ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kwhjx ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj^ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ ei_leaf_lo”h]”hŒ ei_leaf_lo”…”�”}”(hj’ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kxhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj^ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ¼Lower 32-bits of the block number of the extent node that is the next level lower in the tree. The tree node pointed to can be either another internal node or a leaf node, described below.”h]”hŒ¼Lower 32-bits of the block number of the extent node that is the next level lower in the tree. The tree node pointed to can be either another internal node or a leaf node, described below.”…”�”}”(hj© h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kyhj¦ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj^ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjö ubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x8”h]”hŒ0x8”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K|hjÆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjà ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le16”h]”hŒ__le16”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K}hjÝ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjà ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ ei_leaf_hi”h]”hŒ ei_leaf_hi”…”�”}”(hj÷ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K~hjô ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjà ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ$Upper 16-bits of the previous field.”h]”hŒ$Upper 16-bits of the previous field.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjà ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjö ubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0xA”h]”hŒ0xA”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K€hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj(ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__u16”h]”hŒ__u16”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjBubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj(ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ ei_unused”h]”hŒ ei_unused”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‚hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj(ubj‡)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j†hj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjö ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÂhja ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahj^ ubah}”(h]”h ]”j: ah"]”h$]”h&]”uh1j\hj^h²hh³Nh´NubhÞ)�”}”(hŒaLeaf nodes of the extent tree are recorded as ``struct ext4_extent``, and are also 12 bytes long:”h]”(hŒ.Leaf nodes of the extent tree are recorded as ”…”�”}”(hj’h²hh³Nh´Nubhè)�”}”(hŒ``struct ext4_extent``”h]”hŒstruct ext4_extent”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj’ubhŒ, and are also 12 bytes long:”…”�”}”(hj’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K…hj^h²hubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhjµubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhjµubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhjµubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn K(uh1jfhjµubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŒhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjßubj‡)�”}”(hhh]”hÞ)�”}”(hŒSize”h]”hŒSize”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjßubj‡)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŽhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjßubj‡)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjµubjÃ)�”}”(hhh]”(j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x0”h]”hŒ0x0”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjMubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le32”h]”hŒ__le32”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‘hjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjMubj‡)�”}”(hhh]”hÞ)�”}”(hŒee_block”h]”hŒee_block”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K’hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjMubj‡)�”}”(hhh]”hÞ)�”}”(hŒ0First file block number that this extent covers.”h]”hŒ0First file block number that this extent covers.”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K“hj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjJubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x4”h]”hŒ0x4”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K”hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj²ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le16”h]”hŒ__le16”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K•hjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj²ubj‡)�”}”(hhh]”hÞ)�”}”(hŒee_len”h]”hŒee_len”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K–hjãubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj²ubj‡)�”}”(hhh]”hÞ)�”}”(hX_Number of blocks covered by extent. If the value of this field is <= 32768, the extent is initialized. If the value of the field is > 32768, the extent is uninitialized and the actual extent length is ``ee_len`` - 32768. Therefore, the maximum length of a initialized extent is 32768 blocks, and the maximum length of an uninitialized extent is 32767.”h]”(hŒÉNumber of blocks covered by extent. If the value of this field is <= 32768, the extent is initialized. If the value of the field is > 32768, the extent is uninitialized and the actual extent length is ”…”�”}”(hjýh²hh³Nh´Nubhè)�”}”(hŒ ``ee_len``”h]”hŒee_len”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjýubhŒŒ - 32768. Therefore, the maximum length of a initialized extent is 32768 blocks, and the maximum length of an uninitialized extent is 32767.”…”�”}”(hjýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K—hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjJubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x6”h]”hŒ0x6”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kœhj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj)ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le16”h]”hŒ__le16”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj)ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ ee_start_hi”h]”hŒ ee_start_hi”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KžhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj)ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ>Upper 16-bits of the block number to which this extent points.”h]”hŒ>Upper 16-bits of the block number to which this extent points.”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŸhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjJubj‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x8”h]”hŒ0x8”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjŽubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le32”h]”hŒ__le32”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¡hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjŽubj‡)�”}”(hhh]”hÞ)�”}”(hŒ ee_start_lo”h]”hŒ ee_start_lo”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¢hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjŽubj‡)�”}”(hhh]”hÞ)�”}”(hŒ>Lower 32-bits of the block number to which this extent points.”h]”hŒ>Lower 32-bits of the block number to which this extent points.”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K£hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjµubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahj²ubah}”(h]”h ]”j: ah"]”h$]”h&]”uh1j\hj^h²hh³Nh´NubhÞ)�”}”(hXPrior to the introduction of metadata checksums, the extent header + extent entries always left at least 4 bytes of unallocated space at the end of each extent tree data block (because (2^x % 12) >= 4). Therefore, the 32-bit checksum is inserted into this space. The 4 extents in the inode do not need checksumming, since the inode is already checksummed. The checksum is calculated against the FS UUID, the inode number, the inode generation, and the entire extent block leading up to (but not including) the checksum itself.”h]”hXPrior to the introduction of metadata checksums, the extent header + extent entries always left at least 4 bytes of unallocated space at the end of each extent tree data block (because (2^x % 12) >= 4). Therefore, the 32-bit checksum is inserted into this space. The 4 extents in the inode do not need checksumming, since the inode is already checksummed. The checksum is calculated against the FS UUID, the inode number, the inode generation, and the entire extent block leading up to (but not including) the checksum itself.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¥hj^h²hubhÞ)�”}”(hŒ,``struct ext4_extent_tail`` is 4 bytes long:”h]”(hè)�”}”(hŒ``struct ext4_extent_tail``”h]”hŒstruct ext4_extent_tail”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjubhŒ is 4 bytes long:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K®hj^h²hubj])�”}”(hhh]”jb)�”}”(hhh]”(jg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhj3ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhj3ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn Kuh1jfhj3ubjg)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jn K(uh1jfhj3ubj})�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K´hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj]ubj‡)�”}”(hhh]”hÞ)�”}”(hŒSize”h]”hŒSize”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kµhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj]ubj‡)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¶hjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj]ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K·hj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj3ubjÃ)�”}”(hhh]”j‚)�”}”(hhh]”(j‡)�”}”(hhh]”hÞ)�”}”(hŒ0x0”h]”hŒ0x0”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¸hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjËubj‡)�”}”(hhh]”hÞ)�”}”(hŒ__le32”h]”hŒ__le32”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¹hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjËubj‡)�”}”(hhh]”hÞ)�”}”(hŒ eb_checksum”h]”hŒ eb_checksum”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kºhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjËubj‡)�”}”(hhh]”hÞ)�”}”(hŒGChecksum of the extent block, crc32c(uuid+inum+igeneration+extentblock)”h]”hŒGChecksum of the extent block, crc32c(uuid+inum+igeneration+extentblock)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K»hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjËubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj3ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jahj0ubah}”(h]”h ]”j: ah"]”h$]”h&]”uh1j\hj^h²hh³Nh´Nubeh}”(h]”Œ extent-tree”ah ]”h"]”Œ extent tree”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K,ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Inline Data”h]”hŒ Inline Data”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjKh²hh³hÇh´K¾ubhÞ)�”}”(hŒ¤If the inline data feature is enabled for the filesystem and the flag is set for the inode, it is possible that the first 60 bytes of the file data are stored here.”h]”hŒ¤If the inline data feature is enabled for the filesystem and the flag is set for the inode, it is possible that the first 60 bytes of the file data are stored here.”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÀhjKh²hubeh}”(h]”Œ inline-data”ah ]”h"]”Œ inline data”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K¾ubeh}”(h]”Œthe-contents-of-inode-i-block”ah ]”h"]”Œthe contents of inode.i_block”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”j†Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jœŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jwjtj%j"j[jXjHjEjojluŒ nametypes”}”(jw‰j%‰j[‰jH‰jo‰uh}”(jthÊj"jjXj(jEj^jljKuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ(Documentation/filesystems/ext4/ifork.rst”(NNNNt”†”aŒ decoration”Nh²hub.