• Eric Biggers's avatar
    ext4: inherit encryption xattr before other xattrs · aa1dca3b
    Eric Biggers authored
    When using both encryption and SELinux (or another feature that requires
    an xattr per file) on a filesystem with 256-byte inodes, each file's
    xattrs usually spill into an external xattr block.  Currently, the
    xattrs are inherited in the order ACL, security, then encryption.
    Therefore, if spillage occurs, the encryption xattr will always end up
    in the external block.  This is not ideal because the encryption xattrs
    contain a nonce, so they will always be unique and will prevent the
    external xattr blocks from being deduplicated.
    
    To improve the situation, change the inheritance order to encryption,
    ACL, then security.  This gives the encryption xattr a better chance to
    be stored in-inode, allowing the other xattr(s) to be deduplicated.
    
    Note that it may be better for userspace to format the filesystem with
    512-byte inodes in this case.  However, it's not the default.
    Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    aa1dca3b
ialloc.c 38.6 KB