EXT4 Dynamic Structures

i_flags is a combination of:

prefix EXT4_, suffix _FL
000000001 SECRM  requires secure deletion (not implemented)
000000002 UNRM  should be preserved, should undeletion be desired (not implemented)
000000004 COMPR  compressed (not really implemented)
000000008 SYNC  All writes must be synchronous
000000100  IMMUTABLE  immutable
000000200  APPEND  append p
000000400  NODUMP  dump(1) utility should not save
000000800  NOATIME  access time not updated
000001000  DIRTY  Dirty compressed (not used)
000002000  COMPRBLK  one or more compressed clusters (not used)
000004000  NOCOMPR  Do not compress
000008000  ENCRYPT  Encrypted inode
000010000  INDEX  Directory has hashed indexes
000020000  IMAGIC  AFS magic directory
000040000  JOURNAL_DATA  File data must always be written through the journal
000080000  NOTAIL  File tail should not be merged (not used by ext4)
000100000  DIRSYNC  All directory entry data should be written synchronously (see dirsync)
000200000  TOPDIR  Top of directory hierarchy
000400000  HUGE_FILE  huge file
000800000  EXTENTS  Inode uses extents
001000000  VERITY  Verity protected file
002000000  EA_INODE  Extended Attribute are stored in a large value in Inode data blocks
004000000  EOFBLOCKS  blocks allocated past EOF (deprecated)
010000000  SNAPFILE  Inode is a snapshot (not in mainline)
040000000  SNAPFILE_DELETED  Snapshot is being deleted (not in mainline)
080000000  SNAPFILE_SHRUNK  Snapshot shrink has completed (not in mainline)
100000000  INLINE_DATA  Inode has inline data
200000000  PROJINHERIT  Create children with the same project ID
800000000  RESERVED  Reserved for ext4 library

Aggregate flags:
705BDFFF User-visible flags.
604BC0FF User-modifiable flags. 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