€•Œ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/journal”Œ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/journal”Œ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/journal”Œ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/journal”Œ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/journal”Œ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/journal”Œ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/journal”Œ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³ŒF/var/lib/git/docbuild/linux/Documentation/filesystems/ext4/journal.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒJournal (jbd2)”h]”hŒJournal (jbd2)”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hX'Introduced in ext3, the ext4 filesystem employs a journal to protect the filesystem against metadata inconsistencies in the case of a system crash. Up to 10,240,000 file system blocks (see man mke2fs(8) for more details on journal size limits) can be reserved inside the filesystem as a place to land “importantâ€� data writes on-disk as quickly as possible. Once the important data transaction is fully written to the disk and flushed from the disk write cache, a record of the data being committed is also written to the journal. At some later point in time, the journal code writes the transactions to their final locations on disk (this could involve a lot of seeking or a lot of small read-write-erases) before erasing the commit record. Should the system crash during the second slow write, the journal can be replayed all the way to the latest commit record, guaranteeing the atomicity of whatever gets written through the journal to the disk. The effect of this is to guarantee that the filesystem does not become stuck midway through a metadata update.”h]”hX'Introduced in ext3, the ext4 filesystem employs a journal to protect the filesystem against metadata inconsistencies in the case of a system crash. Up to 10,240,000 file system blocks (see man mke2fs(8) for more details on journal size limits) can be reserved inside the filesystem as a place to land “importantâ€� data writes on-disk as quickly as possible. Once the important data transaction is fully written to the disk and flushed from the disk write cache, a record of the data being committed is also written to the journal. At some later point in time, the journal code writes the transactions to their final locations on disk (this could involve a lot of seeking or a lot of small read-write-erases) before erasing the commit record. Should the system crash during the second slow write, the journal can be replayed all the way to the latest commit record, guaranteeing the atomicity of whatever gets written through the journal to the disk. The effect of this is to guarantee that the filesystem does not become stuck midway through a metadata update.”…”�”}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hX.For performance reasons, ext4 by default only writes filesystem metadata through the journal. This means that file data blocks are /not/ guaranteed to be in any consistent state after a crash. If this default guarantee level (``data=ordered``) is not satisfactory, there is a mount option to control journal behavior. If ``data=journal``, all data and metadata are written to disk through the journal. This is slower but safest. If ``data=writeback``, dirty data blocks are not flushed to the disk before the metadata are written to disk through the journal.”h]”(hŒâFor performance reasons, ext4 by default only writes filesystem metadata through the journal. This means that file data blocks are /not/ guaranteed to be in any consistent state after a crash. If this default guarantee level (”…”�”}”(hhíh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``data=ordered``”h]”hŒ data=ordered”…”�”}”(hh÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhhíubhŒO) is not satisfactory, there is a mount option to control journal behavior. If ”…”�”}”(hhíh²hh³Nh´Nubhö)�”}”(hŒ``data=journal``”h]”hŒ data=journal”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhhíubhŒ_, all data and metadata are written to disk through the journal. This is slower but safest. If ”…”�”}”(hhíh²hh³Nh´Nubhö)�”}”(hŒ``data=writeback``”h]”hŒdata=writeback”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhhíubhŒl, dirty data blocks are not flushed to the disk before the metadata are written to disk through the journal.”…”�”}”(hhíh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hX¡In case of ``data=ordered`` mode, Ext4 also supports fast commits which help reduce commit latency significantly. The default ``data=ordered`` mode works by logging metadata blocks to the journal. In fast commit mode, Ext4 only stores the minimal delta needed to recreate the affected metadata in fast commit space that is shared with JBD2. Once the fast commit area fills in or if fast commit is not possible or if JBD2 commit timer goes off, Ext4 performs a traditional full commit. A full commit invalidates all the fast commits that happened before it and thus it makes the fast commit area empty for further fast commits. This feature needs to be enabled at mkfs time.”h]”(hŒ In case of ”…”�”}”(hj3h²hh³Nh´Nubhö)�”}”(hŒ``data=ordered``”h]”hŒ data=ordered”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj3ubhŒc mode, Ext4 also supports fast commits which help reduce commit latency significantly. The default ”…”�”}”(hj3h²hh³Nh´Nubhö)�”}”(hŒ``data=ordered``”h]”hŒ data=ordered”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj3ubhX mode works by logging metadata blocks to the journal. In fast commit mode, Ext4 only stores the minimal delta needed to recreate the affected metadata in fast commit space that is shared with JBD2. Once the fast commit area fills in or if fast commit is not possible or if JBD2 commit timer goes off, Ext4 performs a traditional full commit. A full commit invalidates all the fast commits that happened before it and thus it makes the fast commit area empty for further fast commits. This feature needs to be enabled at mkfs time.”…”�”}”(hj3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hX&The journal inode is typically inode 8. The first 68 bytes of the journal inode are replicated in the ext4 superblock. The journal itself is normal (but hidden) file within the filesystem. The file usually consumes an entire block group, though mke2fs tries to put it in the middle of the disk.”h]”hX&The journal inode is typically inode 8. The first 68 bytes of the journal inode are replicated in the ext4 superblock. The journal itself is normal (but hidden) file within the filesystem. The file usually consumes an entire block group, though mke2fs tries to put it in the middle of the disk.”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K*hhÊh²hubhÞ)�”}”(hŒYAll fields in jbd2 are written to disk in big-endian order. This is the opposite of ext4.”h]”hŒYAll fields in jbd2 are written to disk in big-endian order. This is the opposite of ext4.”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K0hhÊh²hubhÞ)�”}”(hŒ#NOTE: Both ext4 and ocfs2 use jbd2.”h]”hŒ#NOTE: Both ext4 and ocfs2 use jbd2.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K3hhÊh²hubhÞ)�”}”(hŒoThe maximum size of a journal embedded in an ext4 filesystem is 2^32 blocks. jbd2 itself does not seem to care.”h]”hŒoThe maximum size of a journal embedded in an ext4 filesystem is 2^32 blocks. jbd2 itself does not seem to care.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K5hhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒLayout”h]”hŒLayout”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj�h²hh³hÇh´K9ubhÞ)�”}”(hŒ0Generally speaking, the journal has this format:”h]”hŒ0Generally speaking, the journal has this format:”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K;hj�h²hubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jÆhjÃubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK0uh1jÆhjÃubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjÃubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒ Superblock”h]”hŒ Superblock”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KAhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjëubjï)�”}”(hhh]”hÞ)�”}”(hŒ[descriptor_block (data_blocks or revocation_block) [more data or revocations] commmit_block”h]”hŒ[descriptor_block (data_blocks or revocation_block) [more data or revocations] commmit_block”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KBhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjëubjï)�”}”(hhh]”hÞ)�”}”(hŒ[more transactions...]”h]”hŒ[more transactions...]”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KDhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjëubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjÃubhŒtbody”“”)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjFubjï)�”}”(hhh]”hÞ)�”}”(hŒOne transaction”h]”hŒOne transaction”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KFhjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjFubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjÃubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhj¾ubah}”(h]”h ]”Œcolwidths-given”ah"]”h$]”h&]”uh1j¼hj�h²hh³Nh´NubhÞ)�”}”(hXNotice that a transaction begins with either a descriptor and some data, or a block revocation list. A finished transaction always ends with a commit. If there is no commit record (or the checksums don't match), the transaction will be discarded during replay.”h]”hXNotice that a transaction begins with either a descriptor and some data, or a block revocation list. A finished transaction always ends with a commit. If there is no commit record (or the checksums don’t match), the transaction will be discarded during replay.”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KIhj�h²hubeh}”(h]”Œlayout”ah ]”h"]”Œlayout”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K9ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒExternal Journal”h]”hŒExternal Journal”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¢h²hh³hÇh´KOubhÞ)�”}”(hX­Optionally, an ext4 filesystem can be created with an external journal device (as opposed to an internal journal, which uses a reserved inode). In this case, on the filesystem device, ``s_journal_inum`` should be zero and ``s_journal_uuid`` should be set. On the journal device there will be an ext4 super block in the usual place, with a matching UUID. The journal superblock will be in the next full block after the superblock.”h]”(hŒ¸Optionally, an ext4 filesystem can be created with an external journal device (as opposed to an internal journal, which uses a reserved inode). In this case, on the filesystem device, ”…”�”}”(hj³h²hh³Nh´Nubhö)�”}”(hŒ``s_journal_inum``”h]”hŒs_journal_inum”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj³ubhŒ should be zero and ”…”�”}”(hj³h²hh³Nh´Nubhö)�”}”(hŒ``s_journal_uuid``”h]”hŒs_journal_uuid”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj³ubhŒ½ should be set. On the journal device there will be an ext4 super block in the usual place, with a matching UUID. The journal superblock will be in the next full block after the superblock.”…”�”}”(hj³h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KQhj¢h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK uh1jÆhjèubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK uh1jÆhjèubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK uh1jÆhjèubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK uh1jÆhjèubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK uh1jÆhjèubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ1024 bytes of padding”h]”hŒ1024 bytes of padding”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K]hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒext4 Superblock”h]”hŒext4 Superblock”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K^hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒJournal Superblock”h]”hŒJournal Superblock”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K_hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒ[descriptor_block (data_blocks or revocation_block) [more data or revocations] commmit_block”h]”hŒ[descriptor_block (data_blocks or revocation_block) [more data or revocations] commmit_block”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K`hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒ[more transactions...]”h]”hŒ[more transactions...]”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kbhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjèubjB)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubjï)�”}”(hhh]”hÞ)�”}”(hŒOne transaction”h]”hŒOne transaction”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kfhj¾ubah}”(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�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjèubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjåubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hj¢h²hh³Nh´Nubeh}”(h]”Œexternal-journal”ah ]”h"]”Œexternal journal”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KOubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Block Header”h]”hŒ Block Header”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÿh²hh³hÇh´KjubhÞ)�”}”(hŒ[Every block in the journal starts with a common 12-byte header ``struct journal_header_s``:”h]”(hŒ?Every block in the journal starts with a common 12-byte header ”…”�”}”(hjh²hh³Nh´Nubhö)�”}”(hŒ``struct journal_header_s``”h]”hŒstruct journal_header_s”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Klhjÿh²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj3ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj3ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj3ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhj3ubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hjch²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ŒType”h]”hŒType”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kthjwubah}”(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´KuhjŽ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´Kvhj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj3ubjB)�”}”(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´KwhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjËubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(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Œh_magic”h]”hŒh_magic”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kyhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjËubjï)�”}”(hhh]”hÞ)�”}”(hŒjbd2 magic number, 0xC03B3998.”h]”hŒjbd2 magic number, 0xC03B3998.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kzhjubah}”(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”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K{hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj0ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K|hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj0ubjï)�”}”(hhh]”hÞ)�”}”(hŒ h_blocktype”h]”hŒ h_blocktype”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K}hjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj0ubjï)�”}”(hhh]”hÞ)�”}”(hŒMDescription of what this block contains. See the jbd2_blocktype_ table below.”h]”(hŒ1Description of what this block contains. See the ”…”�”}”(hj{h²hh³Nh´NubhŒ reference”“”)�”}”(hŒjbd2_blocktype_”h]”hŒjbd2_blocktype”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œjbd2_blocktype”Œrefid”Œjbd2-blocktype”uh1jƒhj{Œresolved”KubhŒ table below.”…”�”}”(hj{h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K~hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj0ubeh}”(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Œ__be32”h]”hŒ__be32”…”�”}”(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Œ h_sequence”h]”hŒ h_sequence”…”�”}”(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Œ-The transaction ID that goes with this block.”h]”hŒ-The transaction ID that goes with this block.”…”�”}”(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Èubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj3ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhj0ubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjÿh²hh³Nh´NubhŒtarget”“”)�”}”(hŒ.. _jbd2_blocktype:”h]”h}”(h]”h ]”h"]”h$]”h&]”j•j–uh1j&h´K…hjÿh²hh³hÇŒ referenced”KubhÞ)�”}”(hŒ)The journal block type can be any one of:”h]”hŒ)The journal block type can be any one of:”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”j–ah ]”h"]”Œjbd2_blocktype”ah$]”h&]”uh1hÝh³hÇh´K‡hjÿh²hŒexpect_referenced_by_name”}”j?j(sŒexpect_referenced_by_id”}”j–j(sj2Kubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjIubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK@uh1jÆhjIubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒValue”h]”hŒValue”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjaubjï)�”}”(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îhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjIubjB)�”}”(hhh]”(jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ1”h]”hŒ1”…”�”}”(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ŒsDescriptor. This block precedes a series of data blocks that were written through the journal during a transaction.”h]”hŒsDescriptor. This block precedes a series of data blocks that were written through the journal during a transaction.”…”�”}”(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žubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ2”h]”hŒ2”…”�”}”(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ŒJBlock commit record. This block signifies the completion of a transaction.”h]”hŒJBlock commit record. This block signifies the completion of a transaction.”…”�”}”(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žubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ3”h]”hŒ3”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K•hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒJournal superblock, v1.”h]”hŒJournal superblock, v1.”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K–hj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjžubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ4”h]”hŒ4”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K—hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjFubjï)�”}”(hhh]”hÞ)�”}”(hŒJournal superblock, v2.”h]”hŒJournal superblock, v2.”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K˜hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjžubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ5”h]”hŒ5”…”�”}”(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Œ‚Block revocation records. This speeds up recovery by enabling the journal to skip writing blocks that were subsequently rewritten.”h]”hŒ‚Block revocation records. This speeds up recovery by enabling the journal to skip writing blocks that were subsequently rewritten.”…”�”}”(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žubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhjIubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjFubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjÿh²hh³Nh´Nubeh}”(h]”Œ block-header”ah ]”h"]”Œ block header”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KjubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Super Block”h]”hŒ Super Block”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÏh²hh³hÇh´KžubhÞ)�”}”(hŒ°The super block for the journal is much simpler as compared to ext4's. The key data kept within are size of the journal, and where to find the start of the log of transactions.”h]”hŒ²The super block for the journal is much simpler as compared to ext4’s. The key data kept within are size of the journal, and where to find the start of the log of transactions.”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjÏh²hubhÞ)�”}”(hŒ`The journal superblock is recorded as ``struct journal_superblock_s``, which is 1024 bytes long:”h]”(hŒ&The journal superblock is recorded as ”…”�”}”(hjîh²hh³Nh´Nubhö)�”}”(hŒ``struct journal_superblock_s``”h]”hŒstruct journal_superblock_s”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjîubhŒ, which is 1024 bytes long:”…”�”}”(hjîh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¤hjÏh²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhjubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hjAh²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ŒType”h]”hŒType”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¬hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj;ubjï)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K­hjlubah}”(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éhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjubjB)�”}”(hhh]”(jê)�”}”(hhh]”(jï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj©ubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj©ubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj©ubjï)�”}”(hhh]”hÞ)�”}”(hŒ*Static information describing the journal.”h]”hŒ*Static information describing the journal.”…”�”}”(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¦ubjê)�”}”(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Œjournal_header_t (12 bytes)”h]”hŒjournal_header_t (12 bytes)”…”�”}”(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Œs_header”h]”hŒs_header”…”�”}”(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Œ/Common header identifying this as a superblock.”h]”hŒ/Common header identifying this as a superblock.”…”�”}”(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¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0xC”h]”hŒ0xC”…”�”}”(hjO h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K·hjL ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjI ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¸hjc ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjI ubjï)�”}”(hhh]”hÞ)�”}”(hŒ s_blocksize”h]”hŒ s_blocksize”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¹hjz ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjI ubjï)�”}”(hhh]”hÞ)�”}”(hŒJournal device block size.”h]”hŒJournal device block size.”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kºhj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjI ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x10”h]”hŒ0x10”…”�”}”(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Œ__be32”h]”hŒ__be32”…”�”}”(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Œs_maxlen”h]”hŒs_maxlen”…”�”}”(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Œ'Total number of blocks in this journal.”h]”hŒ'Total number of blocks in this journal.”…”�”}”(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¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x14”h]”hŒ0x14”…”�”}”(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Œ__be32”h]”hŒ__be32”…”�”}”(hj0 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Œs_first”h]”hŒs_first”…”�”}”(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ŒFirst block of log information.”h]”hŒFirst block of log information.”…”�”}”(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¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjx ubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjx ubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjx ubjï)�”}”(hhh]”hÞ)�”}”(hŒ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Œ1Limit of data blocks per transaction. (Not used?)”h]”hŒ1Limit of data blocks per transaction. (Not used?)”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KøhjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x50”h]”hŒ0x50”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kùhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjoubjï)�”}”(hhh]”hÞ)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kúhj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjoubjï)�”}”(hhh]”hÞ)�”}”(hŒs_checksum_type”h]”hŒs_checksum_type”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kûhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjoubjï)�”}”(hhh]”hÞ)�”}”(hŒPChecksum algorithm used for the journal. See jbd2_checksum_type_ for more info.”h]”(hŒ.Checksum algorithm used for the journal. See ”…”�”}”(hjºh²hh³Nh´Nubj„)�”}”(hŒjbd2_checksum_type_”h]”hŒjbd2_checksum_type”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œjbd2_checksum_type”j•Œjbd2-checksum-type”uh1jƒhjºj—KubhŒ for more info.”…”�”}”(hjºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kühj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x51”h]”hŒ0x51”…”�”}”(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Œ__u8[3]”h]”hŒ__u8[3]”…”�”}”(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Œ s_padding2”h]”hŒ s_padding2”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjubah}”(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¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x54”h]”hŒ0x54”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj@ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj@ubjï)�”}”(hhh]”hÞ)�”}”(hŒs_num_fc_blocks”h]”hŒs_num_fc_blocks”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj@ubjï)�”}”(hhh]”hÞ)�”}”(hŒ,Number of fast commit blocks in the journal.”h]”hŒ,Number of fast commit blocks in the journal.”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x58”h]”hŒ0x58”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¥ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¥ubjï)�”}”(hhh]”hÞ)�”}”(hŒs_head”h]”hŒs_head”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¥ubjï)�”}”(hhh]”hÞ)�”}”(hŒhBlock number of the head (first unused block) of the journal, only up-to-date when the journal is empty.”h]”hŒhBlock number of the head (first unused block) of the journal, only up-to-date when the journal is empty.”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x5C”h]”hŒ0x5C”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__u32”h]”hŒ__u32”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubjï)�”}”(hhh]”hÞ)�”}”(hŒ s_padding[40]”h]”hŒ s_padding[40]”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hj;ubah}”(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¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0xFC”h]”hŒ0xFC”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjaubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjaubjï)�”}”(hhh]”hÞ)�”}”(hŒ s_checksum”h]”hŒ s_checksum”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjaubjï)�”}”(hhh]”hÞ)�”}”(hŒ?Checksum of the entire superblock, with this field set to zero.”h]”hŒ?Checksum of the entire superblock, with this field set to zero.”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¦ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x100”h]”hŒ0x100”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÆubjï)�”}”(hhh]”hÞ)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÆubjï)�”}”(hhh]”hÞ)�”}”(hŒs_users[16*48]”h]”hŒs_users[16*48]”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÆubjï)�”}”(hhh]”hÞ)�”}”(hŒ ids of all file systems sharing the log. e2fsprogs/Linux don't allow shared external journals, but I imagine Lustre (or ocfs2?), which use the jbd2 code, might.”h]”hŒ¢ids of all file systems sharing the log. e2fsprogs/Linux don’t allow shared external journals, but I imagine Lustre (or ocfs2?), which use the jbd2 code, might.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhjubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjÏh²hh³Nh´Nubj')�”}”(hŒ.. _jbd2_compat:”h]”h}”(h]”h ]”h"]”h$]”h&]”j•j€ uh1j&h´MhjÏh²hh³hÇj2KubhÞ)�”}”(hŒAThe journal compat features are any combination of the following:”h]”hŒAThe journal compat features are any combination of the following:”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”j€ ah ]”h"]”Œ jbd2_compat”ah$]”h&]”uh1hÝh³hÇh´MhjÏh²hjB}”jTj>sjD}”j€ j>sj2Kubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj\ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK@uh1jÆhj\ubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒValue”h]”hŒValue”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M"hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjtubjï)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M#hjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj\ubjB)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x1”h]”hŒ0x1”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M$hj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj´ubjï)�”}”(hhh]”hÞ)�”}”(hŒNJournal maintains checksums on the data blocks. (JBD2_FEATURE_COMPAT_CHECKSUM)”h]”hŒNJournal maintains checksums on the data blocks. (JBD2_FEATURE_COMPAT_CHECKSUM)”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M%hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj\ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjYubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjÏh²hh³Nh´Nubj')�”}”(hŒ.. _jbd2_incompat:”h]”h}”(h]”h ]”h"]”h$]”h&]”j•jú uh1j&h´M(hjÏh²hh³hÇj2KubhÞ)�”}”(hŒCThe journal incompat features are any combination of the following:”h]”hŒCThe journal incompat features are any combination of the following:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”jú ah ]”h"]”Œ jbd2_incompat”ah$]”h&]”uh1hÝh³hÇh´M*hjÏh²hjB}”jjþsjD}”jú jþsj2Kubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK@uh1jÆhjubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒValue”h]”hŒValue”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M0hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj4ubjï)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M1hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjubjB)�”}”(hhh]”(jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x1”h]”hŒ0x1”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M2hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjtubjï)�”}”(hhh]”hÞ)�”}”(hŒDJournal has block revocation records. (JBD2_FEATURE_INCOMPAT_REVOKE)”h]”hŒDJournal has block revocation records. (JBD2_FEATURE_INCOMPAT_REVOKE)”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M3hjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjqubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x2”h]”hŒ0x2”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M4hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj«ubjï)�”}”(hhh]”hÞ)�”}”(hŒIJournal can deal with 64-bit block numbers. (JBD2_FEATURE_INCOMPAT_64BIT)”h]”hŒIJournal can deal with 64-bit block numbers. (JBD2_FEATURE_INCOMPAT_64BIT)”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M5hjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjqubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x4”h]”hŒ0x4”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M7hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjâubjï)�”}”(hhh]”hÞ)�”}”(hŒDJournal commits asynchronously. (JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)”h]”hŒDJournal commits asynchronously. (JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M8hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjqubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x8”h]”hŒ0x8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒðThis journal uses v2 of the checksum on-disk format. Each journal metadata block gets its own checksum, and the block tags in the descriptor table contain checksums for each of the data blocks in the journal. (JBD2_FEATURE_INCOMPAT_CSUM_V2)”h]”hŒðThis journal uses v2 of the checksum on-disk format. Each journal metadata block gets its own checksum, and the block tags in the descriptor table contain checksums for each of the data blocks in the journal. (JBD2_FEATURE_INCOMPAT_CSUM_V2)”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M:hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjqubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x10”h]”hŒ0x10”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M>hjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjPubjï)�”}”(hhh]”hÞ)�”}”(hŒ½This journal uses v3 of the checksum on-disk format. This is the same as v2, but the journal block tag size is fixed regardless of the size of block numbers. (JBD2_FEATURE_INCOMPAT_CSUM_V3)”h]”hŒ½This journal uses v3 of the checksum on-disk format. This is the same as v2, but the journal block tag size is fixed regardless of the size of block numbers. (JBD2_FEATURE_INCOMPAT_CSUM_V3)”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M?hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjqubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x20”h]”hŒ0x20”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MBhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‡ubjï)�”}”(hhh]”hÞ)�”}”(hŒCJournal has fast commit blocks. (JBD2_FEATURE_INCOMPAT_FAST_COMMIT)”h]”hŒCJournal has fast commit blocks. (JBD2_FEATURE_INCOMPAT_FAST_COMMIT)”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MChj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhjubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjÏh²hh³Nh´Nubj')�”}”(hŒ.. _jbd2_checksum_type:”h]”h}”(h]”h ]”h"]”h$]”h&]”j•jÒuh1j&h´MEhjÏh²hh³hÇj2KubhÞ)�”}”(hŒcJournal checksum type codes are one of the following. crc32 or crc32c are the most likely choices.”h]”hŒcJournal checksum type codes are one of the following. crc32 or crc32c are the most likely choices.”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”jÒah ]”h"]”Œjbd2_checksum_type”ah$]”h&]”uh1hÝh³hÇh´MGhjÏh²hjB}”jçjÑsjD}”jÒjÑsj2Kubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjïubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK@uh1jÆhjïubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒValue”h]”hŒValue”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MNhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MOhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjïubjB)�”}”(hhh]”(jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hj©h]”hŒ1”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MPhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjGubjï)�”}”(hhh]”hÞ)�”}”(hŒCRC32”h]”hŒCRC32”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MQhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjDubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hjàh]”hŒ2”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MRhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj}ubjï)�”}”(hhh]”hÞ)�”}”(hŒMD5”h]”hŒMD5”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MShj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjDubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hjh]”hŒ3”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MThj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³ubjï)�”}”(hhh]”hÞ)�”}”(hŒSHA1”h]”hŒSHA1”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MUhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjDubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hjNh]”hŒ4”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MVhjìubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjéubjï)�”}”(hhh]”hÞ)�”}”(hŒCRC32C”h]”hŒCRC32C”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MWhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhjïubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjìubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjÏh²hh³Nh´Nubeh}”(h]”Œ super-block”ah ]”h"]”Œ super block”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KžubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDescriptor Block”h]”hŒDescriptor Block”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj:h²hh³hÇh´MZubhÞ)�”}”(hXTThe descriptor block contains an array of journal block tags that describe the final locations of the data blocks that follow in the journal. Descriptor blocks are open-coded instead of being completely described by a data structure, but here is the block structure anyway. Descriptor blocks consume at least 36 bytes, but use a full block:”h]”hXTThe descriptor block contains an array of journal block tags that describe the final locations of the data blocks that follow in the journal. Descriptor blocks are open-coded instead of being completely described by a data structure, but here is the block structure anyway. Descriptor blocks consume at least 36 bytes, but use a full block:”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M\hj:h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj\ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj\ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj\ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhj\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´Mfhj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj†ubjï)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mghj 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´Mhhj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj†ubjï)�”}”(hhh]”hÞ)�”}”(hŒ Descriptor”h]”hŒ Descriptor”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MihjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj\ubjB)�”}”(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´Mjhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjôubjï)�”}”(hhh]”hÞ)�”}”(hŒjournal_header_t”h]”hŒjournal_header_t”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mkhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjôubjï)�”}”(hhh]”hÞ)�”}”(hŒ (open coded)”h]”hŒ (open coded)”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mlhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjôubjï)�”}”(hhh]”hÞ)�”}”(hŒCommon block header.”h]”hŒCommon block header.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mmhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjñubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0xC”h]”hŒ0xC”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mnhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjYubjï)�”}”(hhh]”hÞ)�”}”(hŒstruct journal_block_tag_s”h]”hŒstruct journal_block_tag_s”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mohjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjYubjï)�”}”(hhh]”hÞ)�”}”(hŒopen coded array[]”h]”hŒopen coded array[]”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MphjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjYubjï)�”}”(hhh]”hÞ)�”}”(hŒmEnough tags either to fill up the block or to describe all the data blocks that follow this descriptor block.”h]”hŒmEnough tags either to fill up the block or to describe all the data blocks that follow this descriptor block.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mqhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj\ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjYubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hj:h²hh³Nh´NubhÞ)�”}”(hŒuJournal block tags have any of the following formats, depending on which journal feature and block tag flags are set.”h]”hŒuJournal block tags have any of the following formats, depending on which journal feature and block tag flags are set.”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mthj:h²hubhÞ)�”}”(hŒ©If JBD2_FEATURE_INCOMPAT_CSUM_V3 is set, the journal block tag is defined as ``struct journal_block_tag3_s``, which looks like the following. The size is 16 or 32 bytes.”h]”(hŒMIf JBD2_FEATURE_INCOMPAT_CSUM_V3 is set, the journal block tag is defined as ”…”�”}”(hjßh²hh³Nh´Nubhö)�”}”(hŒ``struct journal_block_tag3_s``”h]”hŒstruct journal_block_tag3_s”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjßubhŒ=, which looks like the following. The size is 16 or 32 bytes.”…”�”}”(hjßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mwhj:h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhjubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj,ubjï)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M€hjFubah}”(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´M�hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj,ubjï)�”}”(hhh]”hÞ)�”}”(hŒ Descriptor”h]”hŒ Descriptor”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‚hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjubjB)�”}”(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´Mƒhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjšubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M„hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjšubjï)�”}”(hhh]”hÞ)�”}”(hŒ t_blocknr”h]”hŒ t_blocknr”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M…hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjšubjï)�”}”(hhh]”hÞ)�”}”(hŒZLower 32-bits of the location of where the corresponding data block should end up on disk.”h]”hŒZLower 32-bits of the location of where the corresponding data block should end up on disk.”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M†hjâ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”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mˆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÿubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‰hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÿubjï)�”}”(hhh]”hÞ)�”}”(hŒt_flags”h]”hŒt_flags”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MŠhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÿubjï)�”}”(hhh]”hÞ)�”}”(hŒOFlags that go with the descriptor. See the table jbd2_tag_flags_ for more info.”h]”(hŒ1Flags that go with the descriptor. See the table ”…”�”}”(hjJh²hh³Nh´Nubj„)�”}”(hŒjbd2_tag_flags_”h]”hŒjbd2_tag_flags”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œjbd2_tag_flags”j•Œjbd2-tag-flags”uh1jƒhjJj—KubhŒ for more info.”…”�”}”(hjJh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‹hjGubah}”(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”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjyubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MŽhj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjyubjï)�”}”(hhh]”hÞ)�”}”(hŒt_blocknr_high”h]”hŒt_blocknr_high”…”�”}”(hj­h²hh³Nh´Nuba•&ðh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjyubjï)�”}”(hhh]”hÞ)�”}”(hŒ–Upper 32-bits of the location of where the corresponding data block should end up on disk. This is zero if JBD2_FEATURE_INCOMPAT_64BIT is not enabled.”h]”hŒ–Upper 32-bits of the location of where the corresponding data block should end up on disk. This is zero if JBD2_FEATURE_INCOMPAT_64BIT is not enabled.”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjyubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj—ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0xC”h]”hŒ0xC”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M“hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÞubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M”hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÞubjï)�”}”(hhh]”hÞ)�”}”(hŒ t_checksum”h]”hŒ t_checksum”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M•hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÞubjï)�”}”(hhh]”hÞ)�”}”(hŒFChecksum of the journal UUID, the sequence number, and the data block.”h]”hŒFChecksum of the journal UUID, the sequence number, and the data block.”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M–hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÞubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj—ubjê)�”}”(hhh]”(jï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjCubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjCubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjCubjï)�”}”(hhh]”hÞ)�”}”(hŒ—This field appears to be open coded. It always comes at the end of the tag, after t_checksum. This field is not present if the "same UUID" flag is set.”h]”hŒ›This field appears to be open coded. It always comes at the end of the tag, after t_checksum. This field is not present if the “same UUIDâ€� flag is set.”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mšhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj—ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ 0x8 or 0xC”h]”hŒ 0x8 or 0xC”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj~ubjï)�”}”(hhh]”hÞ)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mžhj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj~ubjï)�”}”(hhh]”hÞ)�”}”(hŒuuid[16]”h]”hŒuuid[16]”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MŸhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj~ubjï)�”}”(hhh]”hÞ)�”}”(hŒ“A UUID to go with this tag. This field appears to be copied from the ``j_uuid`` field in ``struct journal_s``, but only tune2fs touches that field.”h]”(hŒEA UUID to go with this tag. This field appears to be copied from the ”…”�”}”(hjÉh²hh³Nh´Nubhö)�”}”(hŒ ``j_uuid``”h]”hŒj_uuid”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjÉubhŒ field in ”…”�”}”(hjÉh²hh³Nh´Nubhö)�”}”(hŒ``struct journal_s``”h]”hŒstruct journal_s”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjÉubhŒ&, but only tune2fs touches that field.”…”�”}”(hjÉh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhjubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjÿubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hj:h²hh³Nh´Nubj')�”}”(hŒ.. _jbd2_tag_flags:”h]”h}”(h]”h ]”h"]”h$]”h&]”j•jbuh1j&h´M¤hj:h²hh³hÇj2KubhÞ)�”}”(hŒ;The journal tag flags are any combination of the following:”h]”hŒ;The journal tag flags are any combination of the following:”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”jbah ]”h"]”Œjbd2_tag_flags”ah$]”h&]”uh1hÝh³hÇh´M¦hj:h²hjB}”j0jsjD}”jbjsj2Kubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj8ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK@uh1jÆhj8ubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒValue”h]”hŒValue”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¬hjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjPubjï)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M­hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj8ubjB)�”}”(hhh]”(jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x1”h]”hŒ0x1”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M®hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�ubjï)�”}”(hhh]”hÞ)�”}”(hŒnOn-disk block is escaped. The first four bytes of the data block just happened to match the jbd2 magic number.”h]”hŒnOn-disk block is escaped. The first four bytes of the data block just happened to match the jbd2 magic number.”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¯hjª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”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M±hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÇubjï)�”}”(hhh]”hÞ)�”}”(hŒNThis block has the same UUID as previous, therefore the UUID field is omitted.”h]”hŒNThis block has the same UUID as previous, therefore the UUID field is omitted.”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M²hjá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”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M´hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjþubjï)�”}”(hhh]”hÞ)�”}”(hŒ:The data block was deleted by the transaction. (Not used?)”h]”hŒ:The data block was deleted by the transaction. (Not used?)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mµhjubah}”(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´M¶hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj5ubjï)�”}”(hhh]”hÞ)�”}”(hŒ.This is the last tag in this descriptor block.”h]”hŒ.This is the last tag in this descriptor block.”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M·hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj8ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhj5ubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hj:h²hh³Nh´NubhÞ)�”}”(hŒ´If JBD2_FEATURE_INCOMPAT_CSUM_V3 is NOT set, the journal block tag is defined as ``struct journal_block_tag_s``, which looks like the following. The size is 8, 12, 24, or 28 bytes:”h]”(hŒQIf JBD2_FEATURE_INCOMPAT_CSUM_V3 is NOT set, the journal block tag is defined as ”…”�”}”(hjh²hh³Nh´Nubhö)�”}”(hŒ``struct journal_block_tag_s``”h]”hŒstruct journal_block_tag_s”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjubhŒE, which looks like the following. The size is 8, 12, 24, or 28 bytes:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¹hj:h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj¢ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj¢ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj¢ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhj¢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´MÁhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÌubjï)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÂ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´MÃhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÌubjï)�”}”(hhh]”hÞ)�”}”(hŒ Descriptor”h]”hŒ Descriptor”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÄhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj¢ubjB)�”}”(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´MÅhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj:ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÆhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj:ubjï)�”}”(hhh]”hÞ)�”}”(hŒ t_blocknr”h]”hŒ t_blocknr”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÇhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj:ubjï)�”}”(hhh]”hÞ)�”}”(hŒZLower 32-bits of the location of where the corresponding data block should end up on disk.”h]”hŒZLower 32-bits of the location of where the corresponding data block should end up on disk.”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÈhj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj7ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x4”h]”hŒ0x4”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÊhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjŸubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be16”h]”hŒ__be16”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MËhj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjŸubjï)�”}”(hhh]”hÞ)�”}”(hŒ t_checksum”h]”hŒ t_checksum”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÌhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjŸubjï)�”}”(hhh]”hÞ)�”}”(hŒsChecksum of the journal UUID, the sequence number, and the data block. Note that only the lower 16 bits are stored.”h]”hŒsChecksum of the journal UUID, the sequence number, and the data block. Note that only the lower 16 bits are stored.”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÍhjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj7ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x6”h]”hŒ0x6”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÏhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be16”h]”hŒ__be16”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÐhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒt_flags”h]”hŒt_flags”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÑhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒOFlags that go with the descriptor. See the table jbd2_tag_flags_ for more info.”h]”(hŒ1Flags that go with the descriptor. See the table ”…”�”}”(hjOh²hh³Nh´Nubj„)�”}”(hŒjbd2_tag_flags_”h]”hŒjbd2_tag_flags”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œjbd2_tag_flags”j•jbuh1jƒhjOj—KubhŒ for more info.”…”�”}”(hjOh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÒhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj7ubjê)�”}”(hhh]”(jï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj}ubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj}ubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhj}ubjï)�”}”(hhh]”hÞ)�”}”(hŒ^This next field is only present if the super block indicates support for 64-bit block numbers.”h]”hŒ^This next field is only present if the super block indicates support for 64-bit block numbers.”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M×hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj7ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x8”h]”hŒ0x8”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÙhj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¸ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÚhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¸ubjï)�”}”(hhh]”hÞ)�”}”(hŒt_blocknr_high”h]”hŒt_blocknr_high”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÛhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¸ubjï)�”}”(hhh]”hÞ)�”}”(hŒZUpper 32-bits of the location of where the corresponding data block should end up on disk.”h]”hŒZUpper 32-bits of the location of where the corresponding data block should end up on disk.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÜhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj7ubjê)�”}”(hhh]”(jï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubjï)�”}”(hhh]”hÞ)�”}”(hŒ¦This field appears to be open coded. It always comes at the end of the tag, after t_flags or t_blocknr_high. This field is not present if the "same UUID" flag is set.”h]”hŒªThis field appears to be open coded. It always comes at the end of the tag, after t_flags or t_blocknr_high. This field is not present if the “same UUIDâ€� flag is set.”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Máhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj7ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ 0x8 or 0xC”h]”hŒ 0x8 or 0xC”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mähj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjXubjï)�”}”(hhh]”hÞ)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Måhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjXubjï)�”}”(hhh]”hÞ)�”}”(hŒuuid[16]”h]”hŒuuid[16]”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mæhj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjXubjï)�”}”(hhh]”hÞ)�”}”(hŒ“A UUID to go with this tag. This field appears to be copied from the ``j_uuid`` field in ``struct journal_s``, but only tune2fs touches that field.”h]”(hŒEA UUID to go with this tag. This field appears to be copied from the ”…”�”}”(hj£h²hh³Nh´Nubhö)�”}”(hŒ ``j_uuid``”h]”hŒj_uuid”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj£ubhŒ field in ”…”�”}”(hj£h²hh³Nh´Nubhö)�”}”(hŒ``struct journal_s``”h]”hŒstruct journal_s”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj£ubhŒ&, but only tune2fs touches that field.”…”�”}”(hj£h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mçhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj¢ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhjŸubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hj:h²hh³Nh´NubhÞ)�”}”(hŒŸIf JBD2_FEATURE_INCOMPAT_CSUM_V2 or JBD2_FEATURE_INCOMPAT_CSUM_V3 are set, the end of the block is a ``struct jbd2_journal_block_tail``, which looks like this:”h]”(hŒeIf JBD2_FEATURE_INCOMPAT_CSUM_V2 or JBD2_FEATURE_INCOMPAT_CSUM_V3 are set, the end of the block is a ”…”�”}”(hjôh²hh³Nh´Nubhö)�”}”(hŒ"``struct jbd2_journal_block_tail``”h]”hŒstruct jbd2_journal_block_tail”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjôubhŒ, which looks like this:”…”�”}”(hjôh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mëhj:h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhj ubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MóhjD ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjA ubjï)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Môhj[ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjA ubjï)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mõhjr ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjA ubjï)�”}”(hhh]”hÞ)�”}”(hŒ Descriptor”h]”hŒ Descriptor”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Möhj‰ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjA ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj> ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj ubjB)�”}”(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´M÷hj² ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¯ ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjÌ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MøhjÉ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¯ ubjï)�”}”(hhh]”hÞ)�”}”(hŒ t_checksum”h]”hŒ t_checksum”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mùhjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¯ ubjï)�”}”(hhh]”hÞ)�”}”(hŒQChecksum of the journal UUID + the descriptor block, with this field set to zero.”h]”hŒQChecksum of the journal UUID + the descriptor block, with this field set to zero.”…”�”}”(hjú h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Múhj÷ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¯ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¬ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhj ubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hj:h²hh³Nh´Nubeh}”(h]”Œdescriptor-block”ah ]”h"]”Œdescriptor block”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´MZubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Data Block”h]”hŒ Data Block”…”�”}”(hj2!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj/!h²hh³hÇh´MþubhÞ)�”}”(hXDIn general, the data blocks being written to disk through the journal are written verbatim into the journal file after the descriptor block. However, if the first four bytes of the block match the jbd2 magic number then those four bytes are replaced with zeroes and the “escapedâ€� flag is set in the descriptor block tag.”h]”hXDIn general, the data blocks being written to disk through the journal are written verbatim into the journal file after the descriptor block. However, if the first four bytes of the block match the jbd2 magic number then those four bytes are replaced with zeroes and the “escapedâ€� flag is set in the descriptor block tag.”…”�”}”(hj@!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj/!h²hubeh}”(h]”Œ data-block”ah ]”h"]”Œ data block”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´MþubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒRevocation Block”h]”hŒRevocation Block”…”�”}”(hjY!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjV!h²hh³hÇh´MubhÞ)�”}”(hXgA revocation block is used to prevent replay of a block in an earlier transaction. This is used to mark blocks that were journalled at one time but are no longer journalled. Typically this happens if a metadata block is freed and re-allocated as a file data block; in this case, a journal replay after the file block was written to disk will cause corruption.”h]”hXgA revocation block is used to prevent replay of a block in an earlier transaction. This is used to mark blocks that were journalled at one time but are no longer journalled. Typically this happens if a metadata block is freed and re-allocated as a file data block; in this case, a journal replay after the file block was written to disk will cause corruption.”…”�”}”(hjg!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjV!h²hubhÞ)�”}”(hX**NOTE**: This mechanism is NOT used to express “this journal block is superseded by this other journal blockâ€�, as the author (djwong) mistakenly thought. Any block being added to a transaction will cause the removal of all existing revocation records for that block.”h]”(hŒstrong”“”)�”}”(hŒ**NOTE**”h]”hŒNOTE”…”�”}”(hj{!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jy!hju!ubhX: This mechanism is NOT used to express “this journal block is superseded by this other journal blockâ€�, as the author (djwong) mistakenly thought. Any block being added to a transaction will cause the removal of all existing revocation records for that block.”…”�”}”(hju!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjV!h²hubhÞ)�”}”(hŒ‚Revocation blocks are described in ``struct jbd2_journal_revoke_header_s``, are at least 16 bytes in length, but use a full block:”h]”(hŒ#Revocation blocks are described in ”…”�”}”(hj“!h²hh³Nh´Nubhö)�”}”(hŒ'``struct jbd2_journal_revoke_header_s``”h]”hŒ#struct jbd2_journal_revoke_header_s”…”�”}”(hj›!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj“!ubhŒ8, are at least 16 bytes in length, but use a full block:”…”�”}”(hj“!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjV!h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj¶!ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj¶!ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj¶!ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhj¶!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´Mhjã!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjà!ubjï)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hjý!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjú!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´Mhj"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´M 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¶!ubjB)�”}”(hhh]”(jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x0”h]”hŒ0x0”…”�”}”(hjT"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M!hjQ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjN"ubjï)�”}”(hhh]”hÞ)�”}”(hŒjournal_header_t”h]”hŒjournal_header_t”…”�”}”(hjk"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M"hjh"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjN"ubjï)�”}”(hhh]”hÞ)�”}”(hŒr_header”h]”hŒr_header”…”�”}”(hj‚"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M#hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjN"ubjï)�”}”(hhh]”hÞ)�”}”(hŒCommon block header.”h]”hŒCommon block header.”…”�”}”(hj™"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M$hj–"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjN"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjK"ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0xC”h]”hŒ0xC”…”�”}”(hj¹"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M%hj¶"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³"ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjÐ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M&hjÍ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³"ubjï)�”}”(hhh]”hÞ)�”}”(hŒr_count”h]”hŒr_count”…”�”}”(hjç"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M'hjä"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³"ubjï)�”}”(hhh]”hÞ)�”}”(hŒ#Number of bytes used in this block.”h]”hŒ#Number of bytes used in this block.”…”�”}”(hjþ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M(hjû"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjK"ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x10”h]”hŒ0x10”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M)hj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj#ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32 or __be64”h]”hŒ__be32 or __be64”…”�”}”(hj5#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M*hj2#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj#ubjï)�”}”(hhh]”hÞ)�”}”(hŒ blocks[0]”h]”hŒ blocks[0]”…”�”}”(hjL#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M+hjI#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj#ubjï)�”}”(hhh]”hÞ)�”}”(hŒBlocks to revoke.”h]”hŒBlocks to revoke.”…”�”}”(hjc#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M,hj`#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjK"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj¶!ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhj³!ubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjV!h²hh³Nh´NubhÞ)�”}”(hŒÛAfter r_count is a linear array of block numbers that are effectively revoked by this transaction. The size of each block number is 8 bytes if the superblock advertises 64-bit block number support, or 4 bytes otherwise.”h]”hŒÛAfter r_count is a linear array of block numbers that are effectively revoked by this transaction. The size of each block number is 8 bytes if the superblock advertises 64-bit block number support, or 4 bytes otherwise.”…”�”}”(hj�#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M.hjV!h²hubhÞ)�”}”(hŒ«If JBD2_FEATURE_INCOMPAT_CSUM_V2 or JBD2_FEATURE_INCOMPAT_CSUM_V3 are set, the end of the revocation block is a ``struct jbd2_journal_revoke_tail``, which has this format:”h]”(hŒpIf JBD2_FEATURE_INCOMPAT_CSUM_V2 or JBD2_FEATURE_INCOMPAT_CSUM_V3 are set, the end of the revocation block is a ”…”�”}”(hjž#h²hh³Nh´Nubhö)�”}”(hŒ#``struct jbd2_journal_revoke_tail``”h]”hŒstruct jbd2_journal_revoke_tail”…”�”}”(hj¦#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjž#ubhŒ, which has this format:”…”�”}”(hjž#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M3hjV!h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjÁ#ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjÁ#ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjÁ#ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhjÁ#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´M;hjî#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjë#ubjï)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M<hj$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´M=hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjë#ubjï)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hj6$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M>hj3$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjë#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjè#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjÁ#ubjB)�”}”(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´M?hj\$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjY$ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjv$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M@hjs$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjY$ubjï)�”}”(hhh]”hÞ)�”}”(hŒ r_checksum”h]”hŒ r_checksum”…”�”}”(hj�$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MAhjŠ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjY$ubjï)�”}”(hhh]”hÞ)�”}”(hŒ/Checksum of the journal UUID + revocation block”h]”hŒ/Checksum of the journal UUID + revocation block”…”�”}”(hj¤$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MBhj¡$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjY$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjV$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjÁ#ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhj¾#ubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjV!h²hh³Nh´Nubeh}”(h]”Œrevocation-block”ah ]”h"]”Œrevocation block”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Commit Block”h]”hŒ Commit Block”…”�”}”(hjÜ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÙ$h²hh³hÇh´MEubhÞ)�”}”(hŒíThe commit block is a sentry that indicates that a transaction has been completely written to the journal. Once this commit block reaches the journal, the data stored with this transaction can be written to their final locations on disk.”h]”hŒíThe commit block is a sentry that indicates that a transaction has been completely written to the journal. Once this commit block reaches the journal, the data stored with this transaction can be written to their final locations on disk.”…”�”}”(hjê$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MGhjÙ$h²hubhÞ)�”}”(hŒjThe commit block is described by ``struct commit_header``, which is 32 bytes long (but uses a full block):”h]”(hŒ!The commit block is described by ”…”�”}”(hjø$h²hh³Nh´Nubhö)�”}”(hŒ``struct commit_header``”h]”hŒstruct commit_header”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjø$ubhŒ1, which is 32 bytes long (but uses a full block):”…”�”}”(hjø$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MLhjÙ$h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj%ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj%ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhj%ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK(uh1jÆhj%ubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒOffset”h]”hŒOffset”…”�”}”(hjK%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MShjH%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjE%ubjï)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hjb%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MThj_%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjE%ubjï)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hjy%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MUhjv%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjE%ubjï)�”}”(hhh]”hÞ)�”}”(hŒ Descriptor”h]”hŒ Descriptor”…”�”}”(hj�%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MVhj�%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjE%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhjB%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähj%ubjB)�”}”(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´MWhj¶%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³%ubjï)�”}”(hhh]”hÞ)�”}”(hŒjournal_header_s”h]”hŒjournal_header_s”…”�”}”(hjÐ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MXhjÍ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³%ubjï)�”}”(hhh]”hÞ)�”}”(hŒ (open coded)”h]”hŒ (open coded)”…”�”}”(hjç%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MYhjä%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³%ubjï)�”}”(hhh]”hÞ)�”}”(hŒCommon block header.”h]”hŒCommon block header.”…”�”}”(hjþ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MZhjû%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj³%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj°%ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0xC”h]”hŒ0xC”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M[hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj&ubjï)�”}”(hhh]”hÞ)�”}”(hŒ unsigned char”h]”hŒ unsigned char”…”�”}”(hj5&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M\hj2&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj&ubjï)�”}”(hhh]”hÞ)�”}”(hŒ h_chksum_type”h]”hŒ h_chksum_type”…”�”}”(hjL&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M]hjI&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj&ubjï)�”}”(hhh]”hÞ)�”}”(hŒ�The type of checksum to use to verify the integrity of the data blocks in the transaction. See jbd2_checksum_type_ for more info.”h]”(hŒ_The type of checksum to use to verify the integrity of the data blocks in the transaction. See ”…”�”}”(hjc&h²hh³Nh´Nubj„)�”}”(hŒjbd2_checksum_type_”h]”hŒjbd2_checksum_type”…”�”}”(hjk&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œjbd2_checksum_type”j•jÒuh1jƒhjc&j—KubhŒ for more info.”…”�”}”(hjc&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M^hj`&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj°%ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0xD”h]”hŒ0xD”…”�”}”(hj—&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M`hj”&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‘&ubjï)�”}”(hhh]”hÞ)�”}”(hŒ unsigned char”h]”hŒ unsigned char”…”�”}”(hj®&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mahj«&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‘&ubjï)�”}”(hhh]”hÞ)�”}”(hŒ h_chksum_size”h]”hŒ h_chksum_size”…”�”}”(hjÅ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MbhjÂ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‘&ubjï)�”}”(hhh]”hÞ)�”}”(hŒ8The number of bytes used by the checksum. Most likely 4.”h]”hŒ8The number of bytes used by the checksum. Most likely 4.”…”�”}”(hjÜ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MchjÙ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‘&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj°%ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0xE”h]”hŒ0xE”…”�”}”(hjü&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mdhjù&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjö&ubjï)�”}”(hhh]”hÞ)�”}”(hŒ unsigned char”h]”hŒ unsigned char”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mehj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjö&ubjï)�”}”(hhh]”hÞ)�”}”(hŒ h_padding[2]”h]”hŒ h_padding[2]”…”�”}”(hj*'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mfhj''ubah}”(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°%ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x10”h]”hŒ0x10”…”�”}”(hjS'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhhjP'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjM'ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mihjg'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjM'ubjï)�”}”(hhh]”hÞ)�”}”(hŒh_chksum[JBD2_CHECKSUM_BYTES]”h]”hŒh_chksum[JBD2_CHECKSUM_BYTES]”…”�”}”(hj�'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mjhj~'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjM'ubjï)�”}”(hhh]”hÞ)�”}”(hX^32 bytes of space to store checksums. If JBD2_FEATURE_INCOMPAT_CSUM_V2 or JBD2_FEATURE_INCOMPAT_CSUM_V3 are set, the first ``__be32`` is the checksum of the journal UUID and the entire commit block, with this field zeroed. If JBD2_FEATURE_COMPAT_CHECKSUM is set, the first ``__be32`` is the crc32 of all the blocks already written to the transaction.”h]”(hŒ{32 bytes of space to store checksums. If JBD2_FEATURE_INCOMPAT_CSUM_V2 or JBD2_FEATURE_INCOMPAT_CSUM_V3 are set, the first ”…”�”}”(hj˜'h²hh³Nh´Nubhö)�”}”(hŒ ``__be32``”h]”hŒ__be32”…”�”}”(hj 'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj˜'ubhŒŒ is the checksum of the journal UUID and the entire commit block, with this field zeroed. If JBD2_FEATURE_COMPAT_CHECKSUM is set, the first ”…”�”}”(hj˜'h²hh³Nh´Nubhö)�”}”(hŒ ``__be32``”h]”hŒ__be32”…”�”}”(hj²'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj˜'ubhŒC is the crc32 of all the blocks already written to the transaction.”…”�”}”(hj˜'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mkhj•'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjM'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj°%ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x30”h]”hŒ0x30”…”�”}”(hjÜ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MqhjÙ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÖ'ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be64”h]”hŒ__be64”…”�”}”(hjó'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mrhjð'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÖ'ubjï)�”}”(hhh]”hÞ)�”}”(hŒ h_commit_sec”h]”hŒ h_commit_sec”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mshj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÖ'ubjï)�”}”(hhh]”hÞ)�”}”(hŒHThe time that the transaction was committed, in seconds since the epoch.”h]”hŒHThe time that the transaction was committed, in seconds since the epoch.”…”�”}”(hj!(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mthj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÖ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj°%ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒ0x38”h]”hŒ0x38”…”�”}”(hjA(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Muhj>(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj;(ubjï)�”}”(hhh]”hÞ)�”}”(hŒ__be32”h]”hŒ__be32”…”�”}”(hjX(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MvhjU(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj;(ubjï)�”}”(hhh]”hÞ)�”}”(hŒ h_commit_nsec”h]”hŒ h_commit_nsec”…”�”}”(hjo(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mwhjl(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj;(ubjï)�”}”(hhh]”hÞ)�”}”(hŒ-Nanoseconds component of the above timestamp.”h]”hŒ-Nanoseconds component of the above timestamp.”…”�”}”(hj†(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mxhjƒ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj;(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj°%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jAhj%ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÁhj%ubah}”(h]”h ]”jˆah"]”h$]”h&]”uh1j¼hjÙ$h²hh³Nh´Nubeh}”(h]”Œ commit-block”ah ]”h"]”Œ commit block”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´MEubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Fast commits”h]”hŒ Fast commits”…”�”}”(hj¾(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj»(h²hh³hÇh´M{ubhÞ)�”}”(hXFast commit area is organized as a log of tag length values. Each TLV has a ``struct ext4_fc_tl`` in the beginning which stores the tag and the length of the entire field. It is followed by variable length tag specific value. Here is the list of supported tags and their meanings:”h]”(hŒLFast commit area is organized as a log of tag length values. Each TLV has a ”…”�”}”(hjÌ(h²hh³Nh´Nubhö)�”}”(hŒ``struct ext4_fc_tl``”h]”hŒstruct ext4_fc_tl”…”�”}”(hjÔ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhjÌ(ubhŒ· in the beginning which stores the tag and the length of the entire field. It is followed by variable length tag specific value. Here is the list of supported tags and their meanings:”…”�”}”(hjÌ(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M}hj»(h²hubj½)�”}”(hhh]”jÂ)�”}”(hhh]”(jÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjï(ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjï(ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑKuh1jÆhjï(ubjÇ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”jÑK uh1jÆhjï(ubjå)�”}”(hhh]”jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒTag”h]”hŒTag”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M†hj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj)ubjï)�”}”(hhh]”hÞ)�”}”(hŒMeaning”h]”hŒMeaning”…”�”}”(hj6)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‡hj3)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj)ubjï)�”}”(hhh]”hÞ)�”}”(hŒ Value struct”h]”hŒ Value struct”…”�”}”(hjM)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MˆhjJ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj)ubjï)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjd)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‰hja)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jähjï(ubjB)�”}”(hhh]”(jê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒEXT4_FC_TAG_HEAD”h]”hŒEXT4_FC_TAG_HEAD”…”�”}”(hj�)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MŠhjŠ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‡)ubjï)�”}”(hhh]”hÞ)�”}”(hŒFast commit area header”h]”hŒFast commit area header”…”�”}”(hj¤)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‹hj¡)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‡)ubjï)�”}”(hhh]”hÞ)�”}”(hŒ``struct ext4_fc_head``”h]”hö)�”}”(hj½)h]”hŒstruct ext4_fc_head”…”�”}”(hj¿)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj»)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MŒhj¸)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‡)ubjï)�”}”(hhh]”hÞ)�”}”(hŒSStores the TID of the transaction after which these fast commits should be applied.”h]”hŒSStores the TID of the transaction after which these fast commits should be applied.”…”�”}”(hjÛ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hjØ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj‡)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jéhj„)ubjê)�”}”(hhh]”(jï)�”}”(hhh]”hÞ)�”}”(hŒEXT4_FC_TAG_ADD_RANGE”h]”hŒEXT4_FC_TAG_ADD_RANGE”…”�”}”(hjû)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hjø)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjõ)ubjï)�”}”(hhh]”hÞ)�”}”(hŒAdd extent to inode”h]”hŒAdd extent to inode”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjõ)ubjï)�”}”(hhh]”hÞ)�”}”(hŒ``struct ext4_fc_add_range``”h]”hö)�”}”(hj+*h]”hŒstruct ext4_fc_add_range”…”�”}”(hj-*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhj)*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‘hj&*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjõ)ubjï)�”}”(hhh]”hÞ)�”}”(hŒajú ]”jþajÒ]”jÑajb]”jauŒnameids”}”(jÏ.jÌ.jŸjœjüjùjÌjÉj?j–j7j4jTj€ jjú jçjÒj,!j)!j0jbjS!jP!jÖ$jÓ$j¸(jµ(j-j-j’.j�.jÇ.jÄ.uŒ nametypes”}”(jÏ.‰jŸ‰jü‰j̉j?ˆj7‰jTˆjˆjçˆj,!‰j0ˆjS!‰jÖ$‰j¸(‰j-‰j’.‰jÇ.‰uh}”(jÌ.hÊjœj�jùj¢jÉjÿj–j3j4jÏj€ jHjú jjÒjÛj)!j:jbj$jP!j/!jÓ$jV!jµ(jÙ$j-j»(j�.j -jÄ.j•.uŒ 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”]”Œ decoration”Nh²hub.