]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commit
e2fsck: add support for large xattrs in external inodes
authorAndreas Dilger <andreas.dilger@intel.com>
Wed, 5 Jul 2017 03:53:59 +0000 (23:53 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 5 Jul 2017 03:53:59 +0000 (23:53 -0400)
commit6a081f6d2a5cff0f5a077065aab39901d54bfb61
tree671b9d6fe2e2498c5cc996648a2b6bdde5e8326f
parent08ddd208ff89b3b7735e6edc60a7a3717e7daf06
e2fsck: add support for large xattrs in external inodes

Add support for the INCOMPAT_EA_INODE feature, which stores large
extended attributes into an external inode instead of data blocks.
The inode is referenced by the e_value_inum field (formerly the
unused e_value_block field) from the extent header, and stores the
xattr data starting at byte offset 0 in the inode data block.

The xattr inode stores the referring inode number in its i_mtime,
and the parent i_generation in its own i_generation, so that there
is a solid linkage between the two that e2fsck can verify.  The
xattr inode is itself marked with EXT4_EA_INODE_FL as well.

Signed-off-by: Kalpak Shah <kalpak.shah@sun.com>
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Tahsin Erdogan <tahsin@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 files changed:
e2fsck/e2fsck.h
e2fsck/pass1.c
e2fsck/pass4.c
e2fsck/problem.c
e2fsck/problem.h
lib/ext2fs/ext2_ext_attr.h
lib/ext2fs/ext2_fs.h
lib/ext2fs/ext2fs.h
lib/ext2fs/ext_attr.c
lib/ext2fs/swapfs.c
misc/mke2fs.c
misc/tune2fs.c