Lines Matching +full:block +full:- +full:offset
1 .. SPDX-License-Identifier: GPL-2.0
4 -------------------
7 block on the disk and referenced from inodes via ``inode.i_file_acl*``.
17 sb.inode_size = 256, then there are 256 - (128 + 28) = 100 bytes
18 available for in-inode extended attribute storage. The second place
19 where extended attributes can be found is in the block pointed to by
21 block to contain a pointer to a second extended attribute block (or even
23 attribute's value to be stored in a separate data block, though as of
32 .. list-table::
34 :header-rows: 1
36 * - Offset
37 - Type
38 - Name
39 - Description
40 * - 0x0
41 - __le32
42 - h_magic
43 - Magic number for identification, 0xEA020000. This value is set by the
46 The beginning of an extended attribute block is in
49 .. list-table::
51 :header-rows: 1
53 * - Offset
54 - Type
55 - Name
56 - Description
57 * - 0x0
58 - __le32
59 - h_magic
60 - Magic number for identification, 0xEA020000.
61 * - 0x4
62 - __le32
63 - h_refcount
64 - Reference count.
65 * - 0x8
66 - __le32
67 - h_blocks
68 - Number of disk blocks used.
69 * - 0xC
70 - __le32
71 - h_hash
72 - Hash value of all attributes.
73 * - 0x10
74 - __le32
75 - h_checksum
76 - Checksum of the extended attribute block.
77 * - 0x14
78 - __u32
79 - h_reserved[3]
80 - Zero.
82 The checksum is calculated against the FS UUID, the 64-bit block number
83 of the extended attribute block, and the entire block (header +
89 long. When stored in an external block, the ``struct ext4_xattr_entry``
94 .. list-table::
96 :header-rows: 1
98 * - Offset
99 - Type
100 - Name
101 - Description
102 * - 0x0
103 - __u8
104 - e_name_len
105 - Length of name.
106 * - 0x1
107 - __u8
108 - e_name_index
109 - Attribute name index. There is a discussion of this below.
110 * - 0x2
111 - __le16
112 - e_value_offs
113 - Location of this attribute's value on the disk block where it is stored.
115 this value is relative to the start of the first entry; for a block this
116 value is relative to the start of the block (i.e. the header).
117 * - 0x4
118 - __le32
119 - e_value_inum
120 - The inode where the value is stored. Zero indicates the value is in the
121 same block as this entry. This field is only used if the
123 * - 0x8
124 - __le32
125 - e_value_size
126 - Length of attribute value.
127 * - 0xC
128 - __le32
129 - e_hash
130 - Hash value of attribute name and attribute value. The kernel doesn't
131 update the hash for in-inode attributes, so for that case this value
132 must be zero, because e2fsck validates any non-zero hash regardless of
134 * - 0x10
135 - char
136 - e_name[e_name_len]
137 - Attribute name. Does not include trailing NULL.
140 be a requirement that they be aligned to 4-byte boundaries. The values
141 are stored starting at the end of the block and grow towards the
143 put into a separate disk block. If the disk block fills up, the
144 filesystem returns -ENOSPC.
153 The keys are assumed to be NULL-terminated strings. To reduce the amount
154 of on-disk space that the keys consume, the beginning of the key string
159 .. list-table::
161 :header-rows: 1
163 * - Name Index
164 - Key Prefix
165 * - 0
166 - (no prefix)
167 * - 1
168 - “user.”
169 * - 2
170 - “system.posix_acl_access”
171 * - 3
172 - “system.posix_acl_default”
173 * - 4
174 - “trusted.”
175 * - 6
176 - “security.”
177 * - 7
178 - “system.” (inline_data only?)
179 * - 8
180 - “system.richacl” (SuSE kernels only?)