ext4_inode_infoRegular
4.4: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
unsigned int i_reserved_meta_blocks;
unsigned int i_allocated_meta_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
atomic_t i_ioend_count;
atomic_t i_unwritten;
struct work_struct i_rsv_conversion_work;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
struct ext4_crypt_info *i_crypt_info;
};
4.8: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
unsigned int i_reserved_meta_blocks;
unsigned int i_allocated_meta_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
4.10: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
unsigned int i_reserved_meta_blocks;
unsigned int i_allocated_meta_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
4.13: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
4.15: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
4.18: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
5.0: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
5.3: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
5.4: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
5.8: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
5.11: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
struct list_head i_fc_list;
ext4_lblk_t i_fc_lblk_start;
ext4_lblk_t i_fc_lblk_len;
atomic_t i_fc_updates;
wait_queue_head_t i_fc_wait;
struct mutex i_fc_lock;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
5.13: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
struct list_head i_fc_list;
ext4_lblk_t i_fc_lblk_start;
ext4_lblk_t i_fc_lblk_len;
atomic_t i_fc_updates;
wait_queue_head_t i_fc_wait;
struct mutex i_fc_lock;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
5.15: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
unsigned int i_orphan_idx;
struct list_head i_fc_list;
ext4_lblk_t i_fc_lblk_start;
ext4_lblk_t i_fc_lblk_len;
atomic_t i_fc_updates;
wait_queue_head_t i_fc_wait;
struct mutex i_fc_lock;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
5.19: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
unsigned int i_orphan_idx;
struct list_head i_fc_dilist;
struct list_head i_fc_list;
ext4_lblk_t i_fc_lblk_start;
ext4_lblk_t i_fc_lblk_len;
atomic_t i_fc_updates;
wait_queue_head_t i_fc_wait;
struct mutex i_fc_lock;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
6.2: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
unsigned int i_orphan_idx;
struct list_head i_fc_dilist;
struct list_head i_fc_list;
ext4_lblk_t i_fc_lblk_start;
ext4_lblk_t i_fc_lblk_len;
atomic_t i_fc_updates;
wait_queue_head_t i_fc_wait;
struct mutex i_fc_lock;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
6.5: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
unsigned int i_orphan_idx;
struct list_head i_fc_dilist;
struct list_head i_fc_list;
ext4_lblk_t i_fc_lblk_start;
ext4_lblk_t i_fc_lblk_len;
atomic_t i_fc_updates;
wait_queue_head_t i_fc_wait;
struct mutex i_fc_lock;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct rb_root i_prealloc_node;
rwlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
6.8: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
unsigned int i_orphan_idx;
struct list_head i_fc_dilist;
struct list_head i_fc_list;
ext4_lblk_t i_fc_lblk_start;
ext4_lblk_t i_fc_lblk_len;
atomic_t i_fc_updates;
wait_queue_head_t i_fc_wait;
struct mutex i_fc_lock;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct rb_root i_prealloc_node;
rwlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
arm64: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
armhf: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_state_flags;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
ppc64el: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
riscv64: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
aws: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
azure: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
gcp: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
lowlatency: ✅struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
long unsigned int i_flags;
struct rw_semaphore xattr_sem;
struct list_head i_orphan;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct rw_semaphore i_mmap_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
struct list_head i_prealloc_list;
spinlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
ext4_lblk_t i_da_metadata_calc_last_lblock;
int i_da_metadata_calc_len;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
qsize_t i_reserved_quota;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
struct dquot * i_dquot[3];
__u32 i_csum_seed;
kprojid_t i_projid;
};
Regular
4.4 and 4.8 ⚠️struct rw_semaphore i_mmap_sem
kprojid_t i_projid
atomic_t i_ioend_count
struct ext4_crypt_info *i_crypt_info
4.8 and 4.10 ✅
4.10 and 4.13 ⚠️unsigned int i_reserved_meta_blocks
unsigned int i_allocated_meta_blocks
4.13 and 4.15 ✅
4.15 and 4.18 ✅
4.18 and 5.0 ⚠️struct ext4_pending_tree i_pending_tree
struct timespec i_crtime ➡️ struct timespec64 i_crtime
5.0 and 5.3 ✅
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️atomic_t i_prealloc_active
ext4_lblk_t i_da_metadata_calc_last_lblock
int i_da_metadata_calc_len
5.8 and 5.11 ⚠️struct list_head i_fc_list
ext4_lblk_t i_fc_lblk_start
ext4_lblk_t i_fc_lblk_len
atomic_t i_fc_updates
wait_queue_head_t i_fc_wait
struct mutex i_fc_lock
5.11 and 5.13 ✅
5.13 and 5.15 ⚠️unsigned int i_orphan_idx
struct rw_semaphore i_mmap_sem
5.15 and 5.19 ⚠️struct list_head i_fc_dilist
5.19 and 6.2 ✅
6.2 and 6.5 ⚠️struct rb_root i_prealloc_node
struct list_head i_prealloc_list
spinlock_t i_prealloc_lock ➡️ rwlock_t i_prealloc_lock
6.5 and 6.8 ✅
amd64 and arm64 ✅
amd64 and armhf ⚠️long unsigned int i_state_flags
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅