sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget+/translations/zh_CN/filesystems/ext4/inodesmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/filesystems/ext4/inodesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/filesystems/ext4/inodesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/filesystems/ext4/inodesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/filesystems/ext4/inodesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/filesystems/ext4/inodesmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/filesystems/ext4/inodes.rsthKubhsection)}(hhh](htitle)}(h Index Nodesh]h Index Nodes}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXIn a regular UNIX filesystem, the inode stores all the metadata pertaining to the file (time stamps, block maps, extended attributes, etc), not the directory entry. To find the information associated with a file, one must traverse the directory files to find the directory entry associated with a file, then load the inode to find the metadata for that file. ext4 appears to cheat (for performance reasons) a little bit by storing a copy of the file type (normally stored in the inode) in the directory entry. (Compare all this to FAT, which stores all the file information directly in the directory entry, but does not support hard links and is in general more seek-happy than ext4 due to its simpler block allocator and extensive use of linked lists.)h]hXIn a regular UNIX filesystem, the inode stores all the metadata pertaining to the file (time stamps, block maps, extended attributes, etc), not the directory entry. To find the information associated with a file, one must traverse the directory files to find the directory entry associated with a file, then load the inode to find the metadata for that file. ext4 appears to cheat (for performance reasons) a little bit by storing a copy of the file type (normally stored in the inode) in the directory entry. (Compare all this to FAT, which stores all the file information directly in the directory entry, but does not support hard links and is in general more seek-happy than ext4 due to its simpler block allocator and extensive use of linked lists.)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXThe inode table is a linear array of ``struct ext4_inode``. The table is sized to have enough blocks to store at least ``sb.s_inode_size * sb.s_inodes_per_group`` bytes. The number of the block group containing an inode can be calculated as ``(inode_number - 1) / sb.s_inodes_per_group``, and the offset into the group's table is ``(inode_number - 1) % sb.s_inodes_per_group``. There is no inode 0.h](h%The inode table is a linear array of }(hhhhhNhNubhliteral)}(h``struct ext4_inode``h]hstruct ext4_inode}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh=. The table is sized to have enough blocks to store at least }(hhhhhNhNubh)}(h+``sb.s_inode_size * sb.s_inodes_per_group``h]h'sb.s_inode_size * sb.s_inodes_per_group}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubhO bytes. The number of the block group containing an inode can be calculated as }(hhhhhNhNubh)}(h.``(inode_number - 1) / sb.s_inodes_per_group``h]h*(inode_number - 1) / sb.s_inodes_per_group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh-, and the offset into the group’s table is }(hhhhhNhNubh)}(h.``(inode_number - 1) % sb.s_inodes_per_group``h]h*(inode_number - 1) % sb.s_inodes_per_group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh. There is no inode 0.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hgThe inode checksum is calculated against the FS UUID, the inode number, and the inode structure itself.h]hgThe inode checksum is calculated against the FS UUID, the inode number, and the inode structure itself.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h;The inode table entry is laid out in ``struct ext4_inode``.h](h%The inode table entry is laid out in }(hj?hhhNhNubh)}(h``struct ext4_inode``h]hstruct ext4_inode}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?ubh.}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jihjfubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjfubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjfubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK(uh1jihjfubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hOffseth]hOffset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSizeh]hSize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNameh]hName}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjfubhtbody)}(hhh](j)}(hhh](j)}(hhh]h)}(h0x0h]h0x0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h__le16h]h__le16}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hj#ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hi_modeh]hi_mode}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hj:ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h'File mode. See the table i_mode_ below.h](hFile mode. See the table }(hjThhhNhNubh reference)}(hi_mode_h]hi_mode}(hj^hhhNhNubah}(h]h ]h"]h$]h&]namei_moderefidi-modeuh1j\hjTresolvedKubh below.}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK+hjQubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x2h]h0x2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h__le16h]h__le16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hi_uidh]hi_uid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hLower 16-bits of Owner UID.h]hLower 16-bits of Owner UID.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x4h]h0x4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h__le32h]h__le32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h i_size_loh]h i_size_lo}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hLower 32-bits of size in bytes.h]hLower 32-bits of size in bytes.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x8h]h0x8}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjTubah}(h]h ]h"]h$]h&]uh1jhjQubj)}(hhh]h)}(h__le32h]h__le32}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjkubah}(h]h ]h"]h$]h&]uh1jhjQubj)}(hhh]h)}(hi_atimeh]hi_atime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubah}(h]h ]h"]h$]h&]uh1jhjQubj)}(hhh]h)}(hLast access time, in seconds since the epoch. However, if the EA_INODE inode flag is set, this inode stores an extended attribute value and this field contains the checksum of the value.h]hLast access time, in seconds since the epoch. However, if the EA_INODE inode flag is set, this inode stores an extended attribute value and this field contains the checksum of the value.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0xCh]h0xC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h__le32h]h__le32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hi_ctimeh]hi_ctime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x74h]h0x74}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj^ ubah}(h]h ]h"]h$]h&]uh1jhj[ ubj)}(hhh]h)}(h12 bytesh]h12 bytes}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhju ubah}(h]h ]h"]h$]h&]uh1jhj[ ubj)}(hhh]h)}(hi_osd2h]hi_osd2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj[ ubj)}(hhh]h)}(h'See the table i_osd2_ for more details.h](hSee the table }(hj hhhNhNubj])}(hi_osd2_h]hi_osd2}(hj hhhNhNubah}(h]h ]h"]h$]h&]namei_osd2jni-osd2uh1j\hj jpKubh for more details.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj[ ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x80h]h0x80}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h__le16h]h__le16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h i_extra_isizeh]h i_extra_isize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hSize of this inode - 128. Alternately, the size of the extended inode fields beyond the original ext2 inode, including this field.h]hSize of this inode - 128. Alternately, the size of the extended inode fields beyond the original ext2 inode, including this field.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x82h]h0x82}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj= ubah}(h]h ]h"]h$]h&]uh1jhj: ubj)}(hhh]h)}(h__le16h]h__le16}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjT ubah}(h]h ]h"]h$]h&]uh1jhj: ubj)}(hhh]h)}(h i_checksum_hih]h i_checksum_hi}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjk ubah}(h]h ]h"]h$]h&]uh1jhj: ubj)}(hhh]h)}(h$Upper 16-bits of the inode checksum.h]h$Upper 16-bits of the inode checksum.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj: ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x84h]h0x84}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h__le32h]h__le32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h i_ctime_extrah]h i_ctime_extra}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hYExtra change time bits. This provides sub-second precision. See Inode Timestamps section.h]hYExtra change time bits. This provides sub-second precision. See Inode Timestamps section.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x88h]h0x88}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h__le32h]h__le32}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h i_mtime_extrah]h i_mtime_extra}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj5 ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hAExtra modification time bits. This provides sub-second precision.h]hAExtra modification time bits. This provides sub-second precision.}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjL ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x8Ch]h0x8C}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjl ubah}(h]h ]h"]h$]h&]uh1jhji ubj)}(hhh]h)}(h__le32h]h__le32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhji ubj)}(hhh]h)}(h i_atime_extrah]h i_atime_extra}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhji ubj)}(hhh]h)}(h;Extra access time bits. This provides sub-second precision.h]h;Extra access time bits. This provides sub-second precision.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhji ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x90h]h0x90}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h__le32h]h__le32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hi_crtimeh]hi_crtime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h/File creation time, in seconds since the epoch.h]h/File creation time, in seconds since the epoch.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x94h]h0x94}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj6 ubah}(h]h ]h"]h$]h&]uh1jhj3 ubj)}(hhh]h)}(h__le32h]h__le32}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjM ubah}(h]h ]h"]h$]h&]uh1jhj3 ubj)}(hhh]h)}(hi_crtime_extrah]hi_crtime_extra}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjd ubah}(h]h ]h"]h$]h&]uh1jhj3 ubj)}(hhh]h)}(hBExtra file creation time bits. This provides sub-second precision.h]hBExtra file creation time bits. This provides sub-second precision.}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj{ ubah}(h]h ]h"]h$]h&]uh1jhj3 ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x98h]h0x98}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h__le32h]h__le32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h i_version_hih]h i_version_hi}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h!Upper 32-bits for version number.h]h!Upper 32-bits for version number.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x9Ch]h0x9C}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h__le32h]h__le32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hi_projidh]hi_projid}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj. ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h Project ID.h]h Project ID.}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjE ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]colsKuh1jdhjaubah}(h]h ](colwidths-given longtableeh"]h$]h&]uh1j_hhhhhNhNubhtarget)}(h .. _i_mode:h]h}(h]h ]h"]h$]h&]jnjouh1jw hKhhhhhh referencedKubh)}(h=The ``i_mode`` value is a combination of the following flags:h](hThe }(hj hhhNhNubh)}(h ``i_mode``h]hi_mode}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh/ value is a combination of the following flags:}(hj hhhNhNubeh}(h]joah ]h"]i_modeah$]h&]uh1hhhhKhhhhexpect_referenced_by_name}j jy sexpect_referenced_by_id}jojy sj Kubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK@uh1jihj ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hValueh]hValue}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h Descriptionh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h0x1h]h0x1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hS_IXOTH (Others may execute)h]hS_IXOTH (Others may execute)}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x2h]h0x2}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj>ubah}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h)}(hS_IWOTH (Others may write)h]hS_IWOTH (Others may write)}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjUubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x4h]h0x4}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjuubah}(h]h ]h"]h$]h&]uh1jhjrubj)}(hhh]h)}(hS_IROTH (Others may read)h]hS_IROTH (Others may read)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x8h]h0x8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h#S_IXGRP (Group members may execute)h]h#S_IXGRP (Group members may execute)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x10h]h0x10}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h!S_IWGRP (Group members may write)h]h!S_IWGRP (Group members may write)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x20h]h0x20}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h S_IRGRP (Group members may read)h]h S_IRGRP (Group members may read)}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x40h]h0x40}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjQubah}(h]h ]h"]h$]h&]uh1jhjNubj)}(hhh]h)}(hS_IXUSR (Owner may execute)h]hS_IXUSR (Owner may execute)}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x80h]h0x80}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hS_IWUSR (Owner may write)h]hS_IWUSR (Owner may write)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x100h]h0x100}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hS_IRUSR (Owner may read)h]hS_IRUSR (Owner may read)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x200h]h0x200}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hS_ISVTX (Sticky bit)h]hS_ISVTX (Sticky bit)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x400h]h0x400}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj-ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(hS_ISGID (Set GID)h]hS_ISGID (Set GID)}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjDubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x800h]h0x800}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjdubah}(h]h ]h"]h$]h&]uh1jhjaubj)}(hhh]h)}(hS_ISUID (Set UID)h]hS_ISUID (Set UID)}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj{ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h(These are mutually-exclusive file types:h]h(These are mutually-exclusive file types:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x1000h]h0x1000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hS_IFIFO (FIFO)h]hS_IFIFO (FIFO)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x2000h]h0x2000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hS_IFCHR (Character device)h]hS_IFCHR (Character device)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x4000h]h0x4000}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj2ubah}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh]h)}(hS_IFDIR (Directory)h]hS_IFDIR (Directory)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjIubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x6000h]h0x6000}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjiubah}(h]h ]h"]h$]h&]uh1jhjfubj)}(hhh]h)}(hS_IFBLK (Block device)h]hS_IFBLK (Block device)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x8000h]h0x8000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hS_IFREG (Regular file)h]hS_IFREG (Regular file)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0xA000h]h0xA000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hS_IFLNK (Symbolic link)h]hS_IFLNK (Symbolic link)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0xC000h]h0xC000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hS_IFSOCK (Socket)h]hS_IFSOCK (Socket)}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]colsKuh1jdhj ubah}(h]h ]jr ah"]h$]h&]uh1j_hhhhhNhNubjx )}(h .. _i_flags:h]h}(h]h ]h"]h$]h&]jnjuh1jw hKhhhhhhj Kubh)}(h7The ``i_flags`` field is a combination of these values:h](hThe }(hj_hhhNhNubh)}(h ``i_flags``h]hi_flags}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubh( field is a combination of these values:}(hj_hhhNhNubeh}(h]jah ]h"]i_flagsah$]h&]uh1hhhhKhhhhj }j}jUsj }jjUsj Kubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK@uh1jihjubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hValueh]hValue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h0x1h]h0x1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hEThis file requires secure deletion (EXT4_SECRM_FL). (not implemented)h]hEThis file requires secure deletion (EXT4_SECRM_FL). (not implemented)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x2h]h0x2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h]This file should be preserved, should undeletion be desired (EXT4_UNRM_FL). (not implemented)h]h]This file should be preserved, should undeletion be desired (EXT4_UNRM_FL). (not implemented)}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x4h]h0x4}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjNubah}(h]h ]h"]h$]h&]uh1jhjKubj)}(hhh]h)}(hAll directory entry data should be written synchronously (see }(hjjhhhNhNubh)}(h ``dirsync``h]hdirsync}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjubh) (EXT4_DIRSYNC_FL).}(hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjgubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x20000h]h0x20000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h,Top of directory hierarchy (EXT4_TOPDIR_FL).h]h,Top of directory hierarchy (EXT4_TOPDIR_FL).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x40000h]h0x40000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h(This is a huge file (EXT4_HUGE_FILE_FL).h]h(This is a huge file (EXT4_HUGE_FILE_FL).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x80000h]h0x80000}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h%Inode uses extents (EXT4_EXTENTS_FL).h]h%Inode uses extents (EXT4_EXTENTS_FL).}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x100000h]h0x100000}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj>ubah}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h)}(h'Verity protected file (EXT4_VERITY_FL).h]h'Verity protected file (EXT4_VERITY_FL).}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjUubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x200000h]h0x200000}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjuubah}(h]h ]h"]h$]h&]uh1jhjrubj)}(hhh]h)}(hTInode stores a large extended attribute value in its data blocks (EXT4_EA_INODE_FL).h]hTInode stores a large extended attribute value in its data blocks (EXT4_EA_INODE_FL).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h0x400000h]h0x400000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hIThis file has blocks allocated past EOF (EXT4_EOFBLOCKS_FL). (deprecated)h]hIThis file has blocks allocated past EOF (EXT4_EOFBLOCKS_FL). (deprecated)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h 0x01000000h]h 0x01000000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h=Inode is a snapshot (``EXT4_SNAPFILE_FL``). (not in mainline)h](hInode is a snapshot (}(hjhhhNhNubh)}(h``EXT4_SNAPFILE_FL``h]hEXT4_SNAPFILE_FL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh). (not in mainline)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM!hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h 0x04000000h]h 0x04000000}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hj,ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(hKSnapshot is being deleted (``EXT4_SNAPFILE_DELETED_FL``). (not in mainline)h](hSnapshot is being deleted (}(hjFhhhNhNubh)}(h``EXT4_SNAPFILE_DELETED_FL``h]hEXT4_SNAPFILE_DELETED_FL}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFubh). (not in mainline)}(hjFhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM#hjCubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h 0x08000000h]h 0x08000000}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hjuubah}(h]h ]h"]h$]h&]uh1jhjrubj)}(hhh]h)}(hNSnapshot shrink has completed (``EXT4_SNAPFILE_SHRUNK_FL``). (not in mainline)h](hSnapshot shrink has completed (}(hjhhhNhNubh)}(h``EXT4_SNAPFILE_SHRUNK_FL``h]hEXT4_SNAPFILE_SHRUNK_FL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh). (not in mainline)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM&hjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h 0x10000000h]h 0x10000000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h,Inode has inline data (EXT4_INLINE_DATA_FL).h]h,Inode has inline data (EXT4_INLINE_DATA_FL).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM)hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h 0x20000000h]h 0x20000000}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM*hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h?Create children with the same project ID (EXT4_PROJINHERIT_FL).h]h?Create children with the same project ID (EXT4_PROJINHERIT_FL).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM+hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h 0x80000000h]h 0x80000000}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM,hj,ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(h-Reserved for ext4 library (EXT4_RESERVED_FL).h]h-Reserved for ext4 library (EXT4_RESERVED_FL).}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM-hjCubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj`ubj)}(hhh]h)}(hAggregate flags:h]hAggregate flags:}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM/hjlubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h 0x705BDFFFh]h 0x705BDFFF}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM0hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hUser-visible flags.h]hUser-visible flags.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h 0x604BC0FFh]h 0x604BC0FF}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM2hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hX;User-modifiable flags. Note that while EXT4_JOURNAL_DATA_FL and EXT4_EXTENTS_FL can be set with setattr, they are not in the kernel's EXT4_FL_USER_MODIFIABLE mask, since it needs to handle the setting of these flags in a special manner and they are masked out of the set of flags that are saved directly to i_flags.h]hX=User-modifiable flags. Note that while EXT4_JOURNAL_DATA_FL and EXT4_EXTENTS_FL can be set with setattr, they are not in the kernel’s EXT4_FL_USER_MODIFIABLE mask, since it needs to handle the setting of these flags in a special manner and they are masked out of the set of flags that are saved directly to i_flags.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jdhjubah}(h]h ]jr ah"]h$]h&]uh1j_hhhhhNhNubjx )}(h .. _i_osd1:h]h}(h]h ]h"]h$]h&]jnjKuh1jw hM9hhhhhhj Kubh)}(hBThe ``osd1`` field has multiple meanings depending on the creator:h](hThe }(hjhhhNhNubh)}(h``osd1``h]hosd1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh6 field has multiple meanings depending on the creator:}(hjhhhNhNubeh}(h]jKah ]h"]i_osd1ah$]h&]uh1hhhhM;hhhhj }j2j sj }jKj sj Kubh)}(hLinux:h]hLinux:}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM=hhhhubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjHubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjHubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjHubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK(uh1jihjHubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hOffseth]hOffset}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChjuubah}(h]h ]h"]h$]h&]uh1jhjrubj)}(hhh]h)}(hSizeh]hSize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMDhjubah}(h]h ]h"]h$]h&]uh1jhjrubj)}(hhh]h)}(hNameh]hName}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhjubah}(h]h ]h"]h$]h&]uh1jhjrubj)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMFhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh]j)}(hhh](j)}(hhh]h)}(h0x0h]h0x0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMGhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h__le32h]h__le32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMHhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h l_i_versionh]h l_i_version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hInode version. However, if the EA_INODE inode flag is set, this inode stores an extended attribute value and this field contains the upper 32 bits of the attribute value's reference count.h]hInode version. However, if the EA_INODE inode flag is set, this inode stores an extended attribute value and this field contains the upper 32 bits of the attribute value’s reference count.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMJhޱj(ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]colsKuh1jdhjEubah}(h]h ]jr ah"]h$]h&]uh1j_hhhhhNhNubh)}(hHurd:h]hHurd:}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhhhhubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjiubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjiubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjiubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK(uh1jihjiubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hOffseth]hOffset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMThjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSizeh]hSize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMUhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNameh]hName}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMVhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjiubj)}(hhh]j)}(hhh](j)}(hhh]h)}(h0x0h]h0x0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMXhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h__le32h]h__le32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hh_i_translatorh]hh_i_translator}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMZhj2ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h??h]h??}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM[hjIubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]colsKuh1jdhjfubah}(h]h ]jr ah"]h$]h&]uh1j_hhhhhNhNubh)}(hMasix:h]hMasix:}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM]hhhhubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK(uh1jihjubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hOffseth]hOffset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMchjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSizeh]hSize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMdhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNameh]hName}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMehjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMfhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]j)}(hhh](j)}(hhh]h)}(h0x0h]h0x0}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMghj%ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(h__le32h]h__le32}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhj<ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(h m_i_reservedh]h m_i_reserved}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMihjSubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(h??h]h??}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMjhjjubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jdhjubah}(h]h ]jr ah"]h$]h&]uh1j_hhhhhNhNubjx )}(h .. _i_osd2:h]h}(h]h ]h"]h$]h&]jnj uh1jw hMlhhhhhhj Kubh)}(hMThe ``osd2`` field has multiple meanings depending on the filesystem creator:h](hThe }(hjhhhNhNubh)}(h``osd2``h]hosd2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhA field has multiple meanings depending on the filesystem creator:}(hjhhhNhNubeh}(h]j ah ]h"]i_osd2ah$]h&]uh1hhhhMnhhhhj }jjsj }j jsj Kubh)}(hLinux:h]hLinux:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMphhhhubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihjubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK(uh1jihjubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hOffseth]hOffset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMvhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSizeh]hSize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMwhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNameh]hName}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMxhj3ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Descriptionh]h Description}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMyhjJubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h0x0h]h0x0}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMzhjsubah}(h]h ]h"]h$]h&]uh1jhjpubj)}(hhh]h)}(h__le16h]h__le16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM{hjubah}(h]h ]h"]h$]h&]uh1jhjpubj)}(hhh]h)}(hl_i_blocks_highh]hl_i_blocks_high}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM|hjubah}(h]h ]h"]h$]h&]uh1jhjpubj)}(hhh]h)}(hNUpper 16-bits of the block count. Please see the note attached to i_blocks_lo.h]hNUpper 16-bits of the block count. Please see the note attached to i_blocks_lo.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM}hjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjmubj)}(hhh](j)}(hhh]h)}(h0x2h]h0x2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h__le16h]h__le16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hl_i_file_acl_highh]hl_i_file_acl_high}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hUpper 16-bits of the extended attribute block (historically, the file ACL location). See the Extended Attributes section below.h]hUpper 16-bits of the extended attribute block (historically, the file ACL location). See the Extended Attributes section below.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjmubj)}(hhh](j)}(hhh]h)}(h0x4h]h0x4}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj=ubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(hhh]h)}(h__le16h]h__le16}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjTubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(hhh]h)}(h l_i_uid_highh]h l_i_uid_high}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjkubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(hhh]h)}(hUpper 16-bits of the Owner UID.h]hUpper 16-bits of the Owner UID.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjmubj)}(hhh](j)}(hhh]h)}(h0x6h]h0x6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h__le16h]h__le16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h l_i_gid_highh]h l_i_gid_high}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hUpper 16-bits of the GID.h]hUpper 16-bits of the GID.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjmubj)}(hhh](j)}(hhh]h)}(h0x8h]h0x8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h__le16h]h__le16}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hl_i_checksum_loh]hl_i_checksum_lo}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5 ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h$Lower 16-bits of the inode checksum.h]h$Lower 16-bits of the inode checksum.}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjL ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjmubj)}(hhh](j)}(hhh]h)}(h0xAh]h0xA}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjl ubah}(h]h ]h"]h$]h&]uh1jhji ubj)}(hhh]h)}(h__le16h]h__le16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhji ubj)}(hhh]h)}(h l_i_reservedh]h l_i_reserved}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhji ubj)}(hhh]h)}(hUnused.h]hUnused.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhji ubeh}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jdhjubah}(h]h ]jr ah"]h$]h&]uh1j_hhhhhNhNubh)}(hHurd:h]hHurd:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhhhubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK(uh1jihj ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hOffseth]hOffset}(hj"!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hSizeh]hSize}(hj9!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj6!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hNameh]hName}(hjP!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjM!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(h Descriptionh]h Description}(hjg!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjd!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h0x0h]h0x0}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(h__le16h]h__le16}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(h h_i_reserved1h]h h_i_reserved1}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(h??h]h??}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh](j)}(hhh]h)}(h0x2h]h0x2}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(h__u16h]h__u16}(hj "hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj "ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(h h_i_mode_highh]h h_i_mode_high}(hj#"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj "ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hUpper 16-bits of the file mode.h]hUpper 16-bits of the file mode.}(hj:"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj7"ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh](j)}(hhh]h)}(h0x4h]h0x4}(hjZ"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjW"ubah}(h]h ]h"]h$]h&]uh1jhjT"ubj)}(hhh]h)}(h__le16h]h__le16}(hjq"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjn"ubah}(h]h ]h"]h$]h&]uh1jhjT"ubj)}(hhh]h)}(h h_i_uid_highh]h h_i_uid_high}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj"ubah}(h]h ]h"]h$]h&]uh1jhjT"ubj)}(hhh]h)}(hUpper 16-bits of the Owner UID.h]hUpper 16-bits of the Owner UID.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj"ubah}(h]h ]h"]h$]h&]uh1jhjT"ubeh}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh](j)}(hhh]h)}(h0x6h]h0x6}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(h__le16h]h__le16}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(h h_i_gid_highh]h h_i_gid_high}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(hUpper 16-bits of the GID.h]hUpper 16-bits of the GID.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh](j)}(hhh]h)}(h0x8h]h0x8}(hj$#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(h__u32h]h__u32}(hj;#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj8#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(h h_i_authorh]h h_i_author}(hjR#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjO#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(h Author code?h]h Author code?}(hji#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjf#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]colsKuh1jdhj ubah}(h]h ]jr ah"]h$]h&]uh1j_hhhhhNhNubh)}(hMasix:h]hMasix:}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhhhubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj#ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj#ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj#ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtK(uh1jihj#ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hOffseth]hOffset}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hSizeh]hSize}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hNameh]hName}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(h Descriptionh]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h0x0h]h0x0}(hjE$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjB$ubah}(h]h ]h"]h$]h&]uh1jhj?$ubj)}(hhh]h)}(h__le16h]h__le16}(hj\$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjY$ubah}(h]h ]h"]h$]h&]uh1jhj?$ubj)}(hhh]h)}(h h_i_reserved1h]h h_i_reserved1}(hjs$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjp$ubah}(h]h ]h"]h$]h&]uh1jhj?$ubj)}(hhh]h)}(h??h]h??}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj?$ubeh}(h]h ]h"]h$]h&]uh1jhj<$ubj)}(hhh](j)}(hhh]h)}(h0x2h]h0x2}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(h__u16h]h__u16}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hm_i_file_acl_highh]hm_i_file_acl_high}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hTUpper 16-bits of the extended attribute block (historically, the file ACL location).h]hTUpper 16-bits of the extended attribute block (historically, the file ACL location).}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj<$ubj)}(hhh](j)}(hhh]h)}(h0x4h]h0x4}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj %ubah}(h]h ]h"]h$]h&]uh1jhj %ubj)}(hhh]h)}(h__u32h]h__u32}(hj&%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#%ubah}(h]h ]h"]h$]h&]uh1jhj %ubj)}(hhh]h)}(hm_i_reserved2[2]h]hm_i_reserved2[2]}(hj=%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj:%ubah}(h]h ]h"]h$]h&]uh1jhj %ubj)}(hhh]h)}(h??h]h??}(hjT%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjQ%ubah}(h]h ]h"]h$]h&]uh1jhj %ubeh}(h]h ]h"]h$]h&]uh1jhj<$ubeh}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]colsKuh1jdhj#ubah}(h]h ]jr ah"]h$]h&]uh1j_hhhhhNhNubh)}(hhh](h)}(h Inode Sizeh]h Inode Size}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hhhhhMubh)}(hXkIn ext2 and ext3, the inode structure size was fixed at 128 bytes (``EXT2_GOOD_OLD_INODE_SIZE``) and each inode had a disk record size of 128 bytes. Starting with ext4, it is possible to allocate a larger on-disk inode at format time for all inodes in the filesystem to provide space beyond the end of the original ext2 inode. The on-disk inode record size is recorded in the superblock as ``s_inode_size``. The number of bytes actually used by struct ext4_inode beyond the original 128-byte ext2 inode is recorded in the ``i_extra_isize`` field for each inode, which allows struct ext4_inode to grow for a new kernel without having to upgrade all of the on-disk inodes. Access to fields beyond EXT2_GOOD_OLD_INODE_SIZE should be verified to be within ``i_extra_isize``. By default, ext4 inode records are 256 bytes, and (as of August 2019) the inode structure is 160 bytes (``i_extra_isize = 32``). The extra space between the end of the inode structure and the end of the inode record can be used to store extended attributes. Each inode record can be as large as the filesystem block size, though this is not terribly efficient.h](hCIn ext2 and ext3, the inode structure size was fixed at 128 bytes (}(hj%hhhNhNubh)}(h``EXT2_GOOD_OLD_INODE_SIZE``h]hEXT2_GOOD_OLD_INODE_SIZE}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubhX') and each inode had a disk record size of 128 bytes. Starting with ext4, it is possible to allocate a larger on-disk inode at format time for all inodes in the filesystem to provide space beyond the end of the original ext2 inode. The on-disk inode record size is recorded in the superblock as }(hj%hhhNhNubh)}(h``s_inode_size``h]h s_inode_size}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubht. The number of bytes actually used by struct ext4_inode beyond the original 128-byte ext2 inode is recorded in the }(hj%hhhNhNubh)}(h``i_extra_isize``h]h i_extra_isize}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubh field for each inode, which allows struct ext4_inode to grow for a new kernel without having to upgrade all of the on-disk inodes. Access to fields beyond EXT2_GOOD_OLD_INODE_SIZE should be verified to be within }(hj%hhhNhNubh)}(h``i_extra_isize``h]h i_extra_isize}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubhj. By default, ext4 inode records are 256 bytes, and (as of August 2019) the inode structure is 160 bytes (}(hj%hhhNhNubh)}(h``i_extra_isize = 32``h]hi_extra_isize = 32}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubh). The extra space between the end of the inode structure and the end of the inode record can be used to store extended attributes. Each inode record can be as large as the filesystem block size, though this is not terribly efficient.}(hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj%hhubeh}(h] inode-sizeah ]h"] inode sizeah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hFinding an Inodeh]hFinding an Inode}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hhhhhMubh)}(hXEach block group contains ``sb->s_inodes_per_group`` inodes. Because inode 0 is defined not to exist, this formula can be used to find the block group that an inode lives in: ``bg = (inode_num - 1) / sb->s_inodes_per_group``. The particular inode can be found within the block group's inode table at ``index = (inode_num - 1) % sb->s_inodes_per_group``. To get the byte address within the inode table, use ``offset = index * sb->s_inode_size``.h](hEach block group contains }(hj&hhhNhNubh)}(h``sb->s_inodes_per_group``h]hsb->s_inodes_per_group}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubh{ inodes. Because inode 0 is defined not to exist, this formula can be used to find the block group that an inode lives in: }(hj&hhhNhNubh)}(h1``bg = (inode_num - 1) / sb->s_inodes_per_group``h]h-bg = (inode_num - 1) / sb->s_inodes_per_group}(hj-&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubhN. The particular inode can be found within the block group’s inode table at }(hj&hhhNhNubh)}(h4``index = (inode_num - 1) % sb->s_inodes_per_group``h]h0index = (inode_num - 1) % sb->s_inodes_per_group}(hj?&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubh6. To get the byte address within the inode table, use }(hj&hhhNhNubh)}(h%``offset = index * sb->s_inode_size``h]h!offset = index * sb->s_inode_size}(hjQ&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubh.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj&hhubeh}(h]finding-an-inodeah ]h"]finding an inodeah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hInode Timestampsh]hInode Timestamps}(hjt&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjq&hhhhhMubh)}(hXFour timestamps are recorded in the lower 128 bytes of the inode structure -- inode change time (ctime), access time (atime), data modification time (mtime), and deletion time (dtime). The four fields are 32-bit signed integers that represent seconds since the Unix epoch (1970-01-01 00:00:00 GMT), which means that the fields will overflow in January 2038. If the filesystem does not have orphan_file feature, inodes that are not linked from any directory but are still open (orphan inodes) have the dtime field overloaded for use with the orphan list. The superblock field ``s_last_orphan`` points to the first inode in the orphan list; dtime is then the number of the next orphaned inode, or zero if there are no more orphans.h](hX?Four timestamps are recorded in the lower 128 bytes of the inode structure -- inode change time (ctime), access time (atime), data modification time (mtime), and deletion time (dtime). The four fields are 32-bit signed integers that represent seconds since the Unix epoch (1970-01-01 00:00:00 GMT), which means that the fields will overflow in January 2038. If the filesystem does not have orphan_file feature, inodes that are not linked from any directory but are still open (orphan inodes) have the dtime field overloaded for use with the orphan list. The superblock field }(hj&hhhNhNubh)}(h``s_last_orphan``h]h s_last_orphan}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubh points to the first inode in the orphan list; dtime is then the number of the next orphaned inode, or zero if there are no more orphans.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjq&hhubh)}(hXIf the inode structure size ``sb->s_inode_size`` is larger than 128 bytes and the ``i_inode_extra`` field is large enough to encompass the respective ``i_[cma]time_extra`` field, the ctime, atime, and mtime inode fields are widened to 64 bits. Within this “extra” 32-bit field, the lower two bits are used to extend the 32-bit seconds field to be 34 bit wide; the upper 30 bits are used to provide nanosecond timestamp accuracy. Therefore, timestamps should not overflow until May 2446. dtime was not widened. There is also a fifth timestamp to record inode creation time (crtime); this field is 64-bits wide and decoded in the same manner as 64-bit [cma]time. Neither crtime nor dtime are accessible through the regular stat() interface, though debugfs will report them.h](hIf the inode structure size }(hj&hhhNhNubh)}(h``sb->s_inode_size``h]hsb->s_inode_size}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubh" is larger than 128 bytes and the }(hj&hhhNhNubh)}(h``i_inode_extra``h]h i_inode_extra}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubh3 field is large enough to encompass the respective }(hj&hhhNhNubh)}(h``i_[cma]time_extra``h]hi_[cma]time_extra}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubhX\ field, the ctime, atime, and mtime inode fields are widened to 64 bits. Within this “extra” 32-bit field, the lower two bits are used to extend the 32-bit seconds field to be 34 bit wide; the upper 30 bits are used to provide nanosecond timestamp accuracy. Therefore, timestamps should not overflow until May 2446. dtime was not widened. There is also a fifth timestamp to record inode creation time (crtime); this field is 64-bits wide and decoded in the same manner as 64-bit [cma]time. Neither crtime nor dtime are accessible through the regular stat() interface, though debugfs will report them.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjq&hhubh)}(hUWe use the 32-bit signed time value plus (2^32 * (extra epoch bits)). In other words:h]hUWe use the 32-bit signed time value plus (2^32 * (extra epoch bits)). In other words:}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjq&hhubj`)}(hhh]je)}(hhh](jj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj&ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj&ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj&ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj&ubjj)}(hhh]h}(h]h ]h"]h$]h&]jtKuh1jihj&ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hExtra epoch bitsh]hExtra epoch bits}(hj0'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj-'ubah}(h]h ]h"]h$]h&]uh1jhj*'ubj)}(hhh]h)}(hMSB of 32-bit timeh]hMSB of 32-bit time}(hjG'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjD'ubah}(h]h ]h"]h$]h&]uh1jhj*'ubj)}(hhh]h)}(h-Adjustment for signed 32-bit to 64-bit tv_sech]h-Adjustment for signed 32-bit to 64-bit tv_sec}(hj^'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj['ubah}(h]h ]h"]h$]h&]uh1jhj*'ubj)}(hhh]h)}(hDecoded 64-bit tv_sech]hDecoded 64-bit tv_sec}(hju'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjr'ubah}(h]h ]h"]h$]h&]uh1jhj*'ubj)}(hhh]h)}(hvalid time rangeh]hvalid time range}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj*'ubeh}(h]h ]h"]h$]h&]uh1jhj''ubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h0 0h]h0 0}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(h1h]h1}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(h0h]h0}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(h``-0x80000000 - -0x00000001``h]h)}(hj'h]h-0x80000000 - -0x00000001}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(h1901-12-13 to 1969-12-31h]h1901-12-13 to 1969-12-31}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h0 0h]h0 0}(hj:(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj7(ubah}(h]h ]h"]h$]h&]uh1jhj4(ubj)}(hhh]h)}(hj'h]h0}(hjQ(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjN(ubah}(h]h ]h"]h$]h&]uh1jhj4(ubj)}(hhh]h)}(hj'h]h0}(hjg(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjd(ubah}(h]h ]h"]h$]h&]uh1jhj4(ubj)}(hhh]h)}(h``0x000000000 - 0x07fffffff``h]h)}(hj(h]h0x000000000 - 0x07fffffff}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}(ubah}(h]h ]h"]h$]h&]uh1hhhhMhjz(ubah}(h]h ]h"]h$]h&]uh1jhj4(ubj)}(hhh]h)}(h1970-01-01 to 2038-01-19h]h1970-01-01 to 2038-01-19}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj4(ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h0 1h]h0 1}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(hj'h]h1}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(h 0x100000000h]h 0x100000000}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(h``0x080000000 - 0x0ffffffff``h]h)}(hj)h]h0x080000000 - 0x0ffffffff}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1hhhhM hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(h2038-01-19 to 2106-02-07h]h2038-01-19 to 2106-02-07}(hj!)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hj)ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h0 1h]h0 1}(hjA)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hj>)ubah}(h]h ]h"]h$]h&]uh1jhj;)ubj)}(hhh]h)}(hj'h]h0}(hjX)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM#hjU)ubah}(h]h ]h"]h$]h&]uh1jhj;)ubj)}(hhh]h)}(h 0x100000000h]h 0x100000000}(hjn)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM$hjk)ubah}(h]h ]h"]h$]h&]uh1jhj;)ubj)}(hhh]h)}(h``0x100000000 - 0x17fffffff``h]h)}(hj)h]h0x100000000 - 0x17fffffff}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)ubah}(h]h ]h"]h$]h&]uh1hhhhM%hj)ubah}(h]h ]h"]h$]h&]uh1jhj;)ubj)}(hhh]h)}(h2106-02-07 to 2174-02-25h]h2106-02-07 to 2174-02-25}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM&hj)ubah}(h]h ]h"]h$]h&]uh1jhj;)ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h1 0h]h1 0}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(hj'h]h1}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(h 0x200000000h]h 0x200000000}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM)hj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(h``0x180000000 - 0x1ffffffff``h]h)}(hj *h]h0x180000000 - 0x1ffffffff}(hj *hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj *ubah}(h]h ]h"]h$]h&]uh1hhhhM*hj*ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(h2174-02-25 to 2242-03-16h]h2174-02-25 to 2242-03-16}(hj)*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM+hj&*ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h1 0h]h1 0}(hjI*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM,hjF*ubah}(h]h ]h"]h$]h&]uh1jhjC*ubj)}(hhh]h)}(hj'h]h0}(hj`*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM-hj]*ubah}(h]h ]h"]h$]h&]uh1jhjC*ubj)}(hhh]h)}(h 0x200000000h]h 0x200000000}(hjv*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM.hjs*ubah}(h]h ]h"]h$]h&]uh1jhjC*ubj)}(hhh]h)}(h``0x200000000 - 0x27fffffff``h]h)}(hj*h]h0x200000000 - 0x27fffffff}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]uh1hhhhM/hj*ubah}(h]h ]h"]h$]h&]uh1jhjC*ubj)}(hhh]h)}(h2242-03-16 to 2310-04-04h]h2242-03-16 to 2310-04-04}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM0hj*ubah}(h]h ]h"]h$]h&]uh1jhjC*ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h1 1h]h1 1}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(hj'h]h1}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM2hj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(h 0x300000000h]h 0x300000000}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(h``0x280000000 - 0x2ffffffff``h]h)}(hj+h]h0x280000000 - 0x2ffffffff}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubah}(h]h ]h"]h$]h&]uh1hhhhM4hj+ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(h2310-04-04 to 2378-04-22h]h2310-04-04 to 2378-04-22}(hj1+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hj.+ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h1 1h]h1 1}(hjQ+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM6hjN+ubah}(h]h ]h"]h$]h&]uh1jhjK+ubj)}(hhh]h)}(hj'h]h0}(hjh+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM7hje+ubah}(h]h ]h"]h$]h&]uh1jhjK+ubj)}(hhh]h)}(h 0x300000000h]h 0x300000000}(hj~+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM8hj{+ubah}(h]h ]h"]h$]h&]uh1jhjK+ubj)}(hhh]h)}(h``0x300000000 - 0x37fffffff``h]h)}(hj+h]h0x300000000 - 0x37fffffff}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubah}(h]h ]h"]h$]h&]uh1hhhhM9hj+ubah}(h]h ]h"]h$]h&]uh1jhjK+ubj)}(hhh]h)}(h2378-04-22 to 2446-05-10h]h2378-04-22 to 2446-05-10}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM:hj+ubah}(h]h ]h"]h$]h&]uh1jhjK+ubeh}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]colsKuh1jdhj&ubah}(h]h ]jr ah"]h$]h&]uh1j_hjq&hhhNhNubh)}(hXThis is a somewhat odd encoding since there are effectively seven times as many positive values as negative values. There have also been long-standing bugs decoding and encoding dates beyond 2038, which don't seem to be fixed as of kernel 3.12 and e2fsprogs 1.42.8. 64-bit kernels incorrectly use the extra epoch bits 1,1 for dates between 1901 and 1970. At some point the kernel will be fixed and e2fsck will fix this situation, assuming that it is run before 2310.h]hXThis is a somewhat odd encoding since there are effectively seven times as many positive values as negative values. There have also been long-standing bugs decoding and encoding dates beyond 2038, which don’t seem to be fixed as of kernel 3.12 and e2fsprogs 1.42.8. 64-bit kernels incorrectly use the extra epoch bits 1,1 for dates between 1901 and 1970. At some point the kernel will be fixed and e2fsck will fix this situation, assuming that it is run before 2310.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM<hjq&hhubeh}(h]inode-timestampsah ]h"]inode timestampsah$]h&]uh1hhhhhhhhMubeh}(h] index-nodesah ]h"] index nodesah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj",error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}(i_mode]j^ai_flags]jai_osd1]j;ai_osd2]j aurefids}(jo]jy aj]jUajK]j aj ]jaunameids}(j+j+j joj}jj2jKjj j%j%jn&jk&j+j+u nametypes}(j+j j}j2jj%jn&j+uh}(j+hjoj jj_jKjj jj%j%jk&j&j+jq&u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages](hsystem_message)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]levelKtypeINFOlineM[sourcehuh1j,hjIubj,)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]levelKtypej,lineMjsourcehuh1j,hjjubj,)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]levelKtypej,lineMsourcehuh1j,hj!ubj,)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]levelKtypej,lineMsourcehuh1j,hj$ubj,)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]levelKtypej,lineMsourcehuh1j,hjQ%ubetransform_messages] transformerN include_log] decorationNhhub.