Merge tag 'efi-efivars-removal-for-v5.20' of git://git.kernel.org/pub/scm/linux/kerne...
[linux-2.6-block.git] / Documentation / filesystems / ext4 / eainode.rst
CommitLineData
c09f3bac
DW
1.. SPDX-License-Identifier: GPL-2.0
2
3Large Extended Attribute Values
4-------------------------------
5
6To enable ext4 to store extended attribute values that do not fit in the
7inode or in the single extended attribute block attached to an inode,
3103084a 8the EA_INODE feature allows us to store the value in the data blocks of
c09f3bac
DW
9a regular file inode. This “EA inode” is linked only from the extended
10attribute name index and must not appear in a directory entry. The
3103084a
WJ
11inode's i_atime field is used to store a checksum of the xattr value;
12and i_ctime/i_version store a 64-bit reference count, which enables
c09f3bac
DW
13sharing of large xattr values between multiple owning inodes. For
14backward compatibility with older versions of this feature, the
3103084a
WJ
15i_mtime/i_generation *may* store a back-reference to the inode number
16and i_generation of the **one** owning inode (in cases where the EA
c09f3bac
DW
17inode is not referenced by multiple inodes) to verify that the EA inode
18is the correct one being accessed.