EXT4_SB
blocks = ext4_blocks_count(EXT4_SB(sb)->s_es) -
return EXT4_NUM_B2C(EXT4_SB(sb), blocks);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (unlikely(group >= EXT4_SB(sb)->s_groups_count))
grp_info = sbi_array_rcu_deref(EXT4_SB(sb), s_group_info, indexv);
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY)
le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block)) >>
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
EXT4_SB(sb)->s_cluster_bits;
struct ext4_sb_info *sbi = EXT4_SB(sb);
EXT4_C2B(EXT4_SB(inode->i_sb), ar.len));
es = EXT4_SB(sb)->s_es;
if (EXT4_SB(sb)->s_group_info)
EXT4_NUM_B2C(EXT4_SB(sb), ext4_free_blocks_count(es)),
if (EXT4_SB(sb)->s_group_info)
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
return le32_to_cpu(EXT4_SB(sb)->s_es->s_first_meta_bg);
return EXT4_SB(sb)->s_gdb_count;
le32_to_cpu(EXT4_SB(sb)->s_es->s_first_meta_bg);
struct ext4_sb_info *sbi = EXT4_SB(sb);
return EXT4_NUM_B2C(EXT4_SB(sb), ext4_num_base_meta_blocks(sb, block_group));
int flex_size = ext4_flex_bg_size(EXT4_SB(inode->i_sb));
struct ext4_sb_info *sbi = EXT4_SB(sb);
last_block = ext4_blocks_count(EXT4_SB(inode->i_sb)->s_es) - 1;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
system_blks = rcu_dereference_protected(EXT4_SB(sb)->s_system_blks,
rcu_assign_pointer(EXT4_SB(sb)->s_system_blks, NULL);
struct ext4_sb_info *sbi = EXT4_SB(sb);
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
return EXT4_SB(sb)->s_dummy_enc_policy.policy;
struct ext4_sb_info *sbi = EXT4_SB(sb);
le32_to_cpu(EXT4_SB(dir->i_sb)->s_es->s_inodes_count)))
1 << EXT4_SB(sb)->s_min_folio_order);
#define clear_opt(sb, opt) EXT4_SB(sb)->s_mount_opt &= \
#define set_opt(sb, opt) EXT4_SB(sb)->s_mount_opt |= \
#define test_opt(sb, opt) (EXT4_SB(sb)->s_mount_opt & \
#define clear_opt2(sb, opt) EXT4_SB(sb)->s_mount_opt2 &= \
#define set_opt2(sb, opt) EXT4_SB(sb)->s_mount_opt2 |= \
#define test_opt2(sb, opt) (EXT4_SB(sb)->s_mount_opt2 & \
percpu_down_read(&EXT4_SB(sb)->s_writepages_rwsem);
percpu_up_read(&EXT4_SB(sb)->s_writepages_rwsem);
percpu_down_write(&EXT4_SB(sb)->s_writepages_rwsem);
percpu_up_write(&EXT4_SB(sb)->s_writepages_rwsem);
mutex_lock(&EXT4_SB(sb)->s_fc_lock);
mutex_unlock(&EXT4_SB(sb)->s_fc_lock);
ino <= le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count));
set_bit(bit, &EXT4_SB(sb)->s_mount_flags);
clear_bit(bit, &EXT4_SB(sb)->s_mount_flags);
return test_bit(bit, &EXT4_SB(sb)->s_mount_flags);
struct ext4_sb_info *sbi = EXT4_SB(sb);
return ((EXT4_SB(sb)->s_es->s_feature_compat & \
EXT4_SB(sb)->s_es->s_feature_compat |= \
EXT4_SB(sb)->s_es->s_feature_compat &= \
return ((EXT4_SB(sb)->s_es->s_feature_ro_compat & \
EXT4_SB(sb)->s_es->s_feature_ro_compat |= \
EXT4_SB(sb)->s_es->s_feature_ro_compat &= \
return ((EXT4_SB(sb)->s_es->s_feature_incompat & \
EXT4_SB(sb)->s_es->s_feature_incompat |= \
EXT4_SB(sb)->s_es->s_feature_incompat &= \
return ((EXT4_SB(sb)->s_es->s_feature_compat & \
return ((EXT4_SB(sb)->s_es->s_feature_ro_compat & \
return ((EXT4_SB(sb)->s_es->s_feature_incompat & \
return (EXT4_SB(sb)->s_es->s_feature_compat != 0);
return (EXT4_SB(sb)->s_es->s_feature_ro_compat != 0);
return (EXT4_SB(sb)->s_es->s_feature_incompat != 0);
return test_bit(EXT4_FLAGS_SHUTDOWN, &EXT4_SB(sb)->s_ext4_flags);
return test_bit(EXT4_FLAGS_EMERGENCY_RO, &EXT4_SB(sb)->s_ext4_flags);
le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block);
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
EXT4_SB(s)->s_cluster_bits)
# define EXT4_CLUSTER_BITS(s) (EXT4_SB(s)->s_cluster_bits)
ext4_group_t ngroups = EXT4_SB(sb)->s_groups_count;
#define EXT4_ADDR_PER_BLOCK_BITS(s) (EXT4_SB(s)->s_addr_per_block_bits)
#define EXT4_INODE_SIZE(s) (EXT4_SB(s)->s_inode_size)
return EXT4_SB(inode->i_sb)->s_bitmap_maxbytes;
#define EXT4_FIRST_INO(s) (EXT4_SB(s)->s_first_ino)
return bgl_lock_ptr(EXT4_SB(sb)->s_blockgroup_lock, group);
atomic_add_unless(&EXT4_SB(sb)->s_lock_busy, -1, 0);
atomic_add_unless(&EXT4_SB(sb)->s_lock_busy, 1,
struct ext4_sb_info *sbi = EXT4_SB(sb);
EXT4_SB(inode->i_sb)->s_awu_min > 0;
#define EXT4_DESC_SIZE(s) (EXT4_SB(s)->s_desc_size)
# define EXT4_BLOCKS_PER_GROUP(s) (EXT4_SB(s)->s_blocks_per_group)
# define EXT4_CLUSTERS_PER_GROUP(s) (EXT4_SB(s)->s_clusters_per_group)
# define EXT4_DESC_PER_BLOCK(s) (EXT4_SB(s)->s_desc_per_block)
# define EXT4_INODES_PER_GROUP(s) (EXT4_SB(s)->s_inodes_per_group)
# define EXT4_DESC_PER_BLOCK_BITS(s) (EXT4_SB(s)->s_desc_per_block_bits)
journal = EXT4_SB(sb)->s_journal;
if (!journal || (EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY))
struct ext4_sb_info *sbi = EXT4_SB(sb);
&EXT4_SB(sb)->s_journal_triggers[trigger_type].tr_triggers);
&EXT4_SB(sb)->s_journal_triggers[trigger_type].tr_triggers);
journal = EXT4_SB(sb)->s_journal;
#define EXT4_JOURNAL(inode) (EXT4_SB((inode)->i_sb)->s_journal)
return blocks * EXT4_SB(sb)->s_cluster_ratio;
return blocks + 2*(EXT4_SB(inode->i_sb)->s_cluster_ratio - 1);
struct ext4_super_block *es = EXT4_SB(inode->i_sb)->s_es;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
spin_lock_init(&EXT4_SB(sb)->s_ext_stats_lock);
EXT4_SB(sb)->s_ext_min = 1 << 30;
EXT4_SB(sb)->s_ext_max = 0;
if (EXT4_SB(sb)->s_ext_blocks && EXT4_SB(sb)->s_ext_extents) {
struct ext4_sb_info *sbi = EXT4_SB(sb);
EXT4_SB(inode->i_sb)->s_extent_max_zeroout_kb >>
sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
EXT4_SB(inode->i_sb)->s_journal) {
ret = ext4_fc_commit(EXT4_SB(inode->i_sb)->s_journal,
length = EXT4_SB(inode->i_sb)->s_inode_size - offset;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
stats = &EXT4_SB(inode->i_sb)->s_es_stats;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
struct ext4_sb_info *sbi = EXT4_SB((struct super_block *) seq->private);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
percpu_counter_inc(&EXT4_SB(inode->i_sb)->
percpu_counter_inc(&EXT4_SB(inode->i_sb)->s_es_stats.es_stats_all_cnt);
percpu_counter_dec(&EXT4_SB(inode->i_sb)->s_es_stats.es_stats_all_cnt);
percpu_counter_dec(&EXT4_SB(inode->i_sb)->
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
&EXT4_SB(inode->i_sb)->s_fc_snap_stats;
&EXT4_SB(inode->i_sb)->s_fc_snap_stats;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_fc_stats *stats = &EXT4_SB(sb)->s_fc_stats;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
state = &EXT4_SB(sb)->s_fc_replay_state;
state = &EXT4_SB(sb)->s_fc_replay_state;
state = &EXT4_SB(sb)->s_fc_replay_state;
state = &EXT4_SB(sb)->s_fc_replay_state;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
(EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY));
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB((struct super_block *)seq->private);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct buffer_head *bh = EXT4_SB(sb)->s_fc_bh;
EXT4_SB(sb)->s_fc_bh = NULL;
struct ext4_sb_info *sbi = EXT4_SB(sb);
ret = jbd2_fc_get_buf(EXT4_SB(sb)->s_journal, &bh);
ret = jbd2_fc_get_buf(EXT4_SB(sb)->s_journal, &bh);
struct ext4_sb_info *sbi = EXT4_SB(sb);
&EXT4_SB(inode->i_sb)->s_fc_snap_stats;
&EXT4_SB(inode->i_sb)->s_fc_snap_stats;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (len < EXT4_SB(inode->i_sb)->s_awu_min ||
len > EXT4_SB(inode->i_sb)->s_awu_max)
struct dax_device *dax_dev = EXT4_SB(inode->i_sb)->s_daxdev;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
journal_t *journal = EXT4_SB(sb)->s_journal;
struct ext4_sb_info *sbi = EXT4_SB(sb);
for (agno = 0; agno < EXT4_SB(sb)->s_groups_count; agno++) {
EXT4_SB(sb)->s_itb_per_group,
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (EXT4_SB(sb)->s_journal_bdev_file &&
new_encode_dev(file_bdev(EXT4_SB(sb)->s_journal_bdev_file)->bd_dev))
if (EXT4_SB(sb)->s_journal_bdev_file) {
file_bdev(EXT4_SB(sb)->s_journal_bdev_file)->bd_dev);
struct ext4_sb_info *sbi = EXT4_SB(sb);
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
if (!EXT4_SB(inode->i_sb)->s_journal) {
struct ext4_sb_info *sbi = EXT4_SB(sb);
unsigned long max_ino = le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count);
es = EXT4_SB(sb)->s_es;
struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi = EXT4_SB(sb);
struct flex_groups *fg = sbi_array_rcu_deref(EXT4_SB(sb),
struct ext4_sb_info *sbi = EXT4_SB(sb);
int flex_size = ext4_flex_bg_size(EXT4_SB(sb));
int inodes_per_block = EXT4_SB(sb)->s_inodes_per_block;
bool check_recently_deleted = EXT4_SB(sb)->s_journal == NULL;
unsigned long max_ino = le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count);
if (EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY)
sbi = EXT4_SB(sb);
max_block = (EXT4_SB(inode->i_sb)->s_bitmap_maxbytes + blocksize-1)
max_block = (EXT4_SB(inode->i_sb)->s_bitmap_maxbytes + blocksize-1)
if (key > ext4_blocks_count(EXT4_SB(sb)->s_es)) {
min_offs = EXT4_SB(inode->i_sb)->s_inode_size -
end = (void *)raw_inode + EXT4_SB(inode->i_sb)->s_inode_size;
ASSERT((EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
if (EXT4_SB(inode->i_sb)->s_es->s_creator_os !=
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
EXT4_C2B(EXT4_SB(inode->i_sb),
(long long) EXT4_C2B(EXT4_SB(sb),
(long long) EXT4_C2B(EXT4_SB(sb),
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (!EXT4_SB(inode->i_sb)->s_journal)
if (invalid_block < ext4_blocks_count(EXT4_SB(inode->i_sb)->s_es))
struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
EXT4_SB(inode->i_sb)->s_daxdev, wbc);
struct ext4_sb_info *sbi = EXT4_SB(sb);
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
iomap->dax_dev = EXT4_SB(inode->i_sb)->s_daxdev;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
iomap->addr += EXT4_SB(inode->i_sb)->s_dax_part_off;
iomap->addr += EXT4_SB(inode->i_sb)->s_dax_part_off;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
max_end = EXT4_SB(sb)->s_bitmap_maxbytes - sb->s_blocksize;
if (ei->jinode || !EXT4_SB(inode->i_sb)->s_journal)
ino > le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count))
inodes_per_block = EXT4_SB(sb)->s_inodes_per_block;
if ((block <= le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block)) ||
(block >= ext4_blocks_count(EXT4_SB(sb)->s_es))) {
if (EXT4_SB(sb)->s_inode_readahead_blks) {
__u32 ra_blks = EXT4_SB(sb)->s_inode_readahead_blks;
ino > le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count))
inodes_per_block = EXT4_SB(sb)->s_inodes_per_block;
if (block <= le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block) ||
block >= ext4_blocks_count(EXT4_SB(sb)->s_es)) {
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
max_order = EXT4_SB(sb)->s_max_folio_order;
min_order = EXT4_SB(sb)->s_min_folio_order;
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
journal_t *journal = EXT4_SB(sb)->s_journal;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
(!(EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY))) {
!(EXT4_SB(inode->i_sb)->s_mount_state & EXT4_ORPHAN_FS)) &&
if (!(EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY) &&
if ((EXT4_SB(sb)->s_mount_state & EXT4_ORPHAN_FS)) {
int i, inodes_per_block = EXT4_SB(sb)->s_inodes_per_block;
memset(raw_inode, 0, EXT4_SB(inode->i_sb)->s_inode_size);
EXT4_SB(sb)->s_es->s_rev_level == cpu_to_le32(EXT4_GOOD_OLD_REV))
BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get write access");
EXT4_SB(sb)->s_sbh,
lock_buffer(EXT4_SB(sb)->s_sbh);
unlock_buffer(EXT4_SB(sb)->s_sbh);
EXT4_SB(sb)->s_sbh);
if (EXT4_SB(inode->i_sb)->s_journal) {
err = ext4_fc_commit(EXT4_SB(inode->i_sb)->s_journal,
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
delalloc_blocks = EXT4_C2B(EXT4_SB(inode->i_sb),
if (groups > EXT4_SB(inode->i_sb)->s_gdb_count)
gdpblocks = EXT4_SB(inode->i_sb)->s_gdb_count;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
if (EXT4_SB(inode->i_sb)->s_es->s_creator_os !=
ASSERT((EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
if (!EXT4_SB(sb)->s_journal)
!bdev_max_discard_sectors(EXT4_SB(sb)->s_journal->j_dev))
jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal);
err = jbd2_journal_flush(EXT4_SB(sb)->s_journal, flush_flags);
jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal);
struct ext4_sb_info *sbi = EXT4_SB(sb);
func(EXT4_SB(sb), es, arg);
err = ext4_group_extend(sb, EXT4_SB(sb)->s_es, n_blocks_count);
if (EXT4_SB(sb)->s_journal) {
jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal);
err2 = jbd2_journal_flush(EXT4_SB(sb)->s_journal, 0);
jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal);
ext4_group_t o_group = EXT4_SB(sb)->s_groups_count;
if (EXT4_SB(sb)->s_journal) {
jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal);
err2 = jbd2_journal_flush(EXT4_SB(sb)->s_journal, 0);
jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal);
if (!err && (o_group < EXT4_SB(sb)->s_groups_count) &&
return ext4_ioctl_getlabel(EXT4_SB(sb), (void __user *)arg);
return ext4_ioctl_getuuid(EXT4_SB(sb), (void __user *)arg);
return ext4_ioctl_get_tune_sb(EXT4_SB(sb),
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
EXT4_SB(sb)->s_want_extra_isize,
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (EXT4_SB(sb)->s_journal) {
jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal);
err2 = jbd2_journal_flush(EXT4_SB(sb)->s_journal, 0);
jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal);
ret = percpu_counter_init(&EXT4_SB(sb)->s_freeclusters_counter, block,
ret = percpu_counter_init(&EXT4_SB(sb)->s_dirtyclusters_counter, 0,
percpu_counter_destroy(&EXT4_SB(sb)->s_freeclusters_counter);
percpu_counter_destroy(&EXT4_SB(sb)->s_dirtyclusters_counter);
percpu_counter_destroy(&EXT4_SB(sb)->s_freeclusters_counter);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct inode *inode = EXT4_SB(sb)->s_buddy_cache;
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (last + 1 < EXT4_SB(sb)->s_mb_maxs[0])
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (start + len < EXT4_SB(e4b->bd_sb)->s_mb_maxs[0])
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
if (EXT4_SB(sb)->s_mb_stats)
atomic_inc(&EXT4_SB(sb)->s_bal_2orders);
struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi = EXT4_SB(ac->ac_sb);
int flex_size = ext4_flex_bg_size(EXT4_SB(ac->ac_sb));
struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
discard_block = (EXT4_C2B(EXT4_SB(sb), cluster) +
count = EXT4_C2B(EXT4_SB(sb), count);
atomic_sub(entry->efd_count, &EXT4_SB(sb)->s_mb_free_pending);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
ac->ac_g_ex.fe_len = EXT4_SB(sb)->s_mb_group_prealloc;
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
atomic_add(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
struct ext4_sb_info *sbi = EXT4_SB(sb);
atomic_add(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
bb = e4b->bd_buddy + EXT4_SB(e4b->bd_sb)->s_mb_offsets[order];
*max = EXT4_SB(e4b->bd_sb)->s_mb_maxs[order];
if (EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY)
blocknr += EXT4_C2B(EXT4_SB(sb), first + i);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi = EXT4_SB(sb);
sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
nr_clusters_in_group = (ext4_blocks_count(EXT4_SB(sb)->s_es) -
minblocks < EXT4_SB(sb)->s_last_trim_minblks)
le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block);
ext4_fsblk_t max_blks = ext4_blocks_count(EXT4_SB(sb)->s_es);
minlen = EXT4_NUM_B2C(EXT4_SB(sb),
minlen = EXT4_NUM_B2C(EXT4_SB(sb),
EXT4_SB(sb)->s_last_trim_minblks = minlen;
range->len = EXT4_C2B(EXT4_SB(sb), trimmed) << sb->s_blocksize_bits;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
ngroups = EXT4_SB(ac->ac_sb)->s_blockfile_groups;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct xarray *xa = &EXT4_SB(ac->ac_sb)->s_mb_largest_free_orders[order];
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
struct xarray *xa = &EXT4_SB(ac->ac_sb)->s_mb_avg_fragment_size[order];
(fex->fe_start << EXT4_SB(sb)->s_cluster_bits);
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
struct buffer_head *bh = EXT4_SB(sb)->s_mmp_bh;
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
EXT4_SB(sb)->s_mmp_bh = bh;
EXT4_SB(sb)->s_mmp_tsk = kthread_run(kmmpd, sb, "kmmpd-%.*s",
if (IS_ERR(EXT4_SB(sb)->s_mmp_tsk)) {
EXT4_SB(sb)->s_mmp_tsk = NULL;
struct ext4_sb_info *sbi = EXT4_SB(sb);
EXT4_SB(dir->i_sb)->s_def_hash_version;
EXT4_SB(dir->i_sb)->s_hash_unsigned;
hinfo.seed = EXT4_SB(dir->i_sb)->s_hash_seed;
EXT4_SB(dir->i_sb)->s_def_hash_version;
fname->hinfo.hash_version += EXT4_SB(dir->i_sb)->s_hash_unsigned;
fname->hinfo.seed = EXT4_SB(dir->i_sb)->s_hash_seed;
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
!(EXT4_SB(sb)->s_mount_state & EXT4_FC_REPLAY) &&
if (unlikely(EXT4_SB(inode->i_sb)->s_max_dir_size_kb &&
EXT4_SB(inode->i_sb)->s_max_dir_size_kb)))
hinfo->hash_version += EXT4_SB(dir->i_sb)->s_hash_unsigned;
hinfo->seed = EXT4_SB(dir->i_sb)->s_hash_seed;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_orphan_info *oi = &EXT4_SB(inode->i_sb)->s_orphan_info;
struct ext4_orphan_info *oi = &EXT4_SB(inode->i_sb)->s_orphan_info;
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
rcu_dereference_protected(EXT4_SB(sb)->s_qf_names[type],
EXT4_SB(sb)->s_jquota_fmt, type);
struct ext4_orphan_info *oi = &EXT4_SB(sb)->s_orphan_info;
if (EXT4_SB(sb)->s_mount_state & EXT4_ERROR_FS) {
if (EXT4_SB(sb)->s_qf_names[i]) {
if (EXT4_SB(sb)->s_mount_state & EXT4_ERROR_FS) {
list_add(&EXT4_I(inode)->i_orphan, &EXT4_SB(sb)->s_orphan);
struct ext4_orphan_info *oi = &EXT4_SB(sb)->s_orphan_info;
struct ext4_orphan_info *oi = &EXT4_SB(sb)->s_orphan_info;
struct ext4_orphan_info *oi = &EXT4_SB(sb)->s_orphan_info;
struct ext4_orphan_info *oi = &EXT4_SB(sb)->s_orphan_info;
ino_t orphan_ino = le32_to_cpu(EXT4_SB(sb)->s_es->s_orphan_file_inum);
struct ext4_orphan_info *oi = &EXT4_SB(sb)->s_orphan_info;
jbd2_journal_abort(EXT4_SB(sb)->s_journal, ret);
struct ext4_sb_info *sbi = EXT4_SB(io_end->inode->i_sb);
clear_bit_unlock(EXT4_FLAGS_RESIZING, &EXT4_SB(sb)->s_ext4_flags);
EXT4_SB(sb)->s_gdb_count++;
int reserved_gdb =le16_to_cpu(EXT4_SB(sb)->s_es->s_reserved_gdt_blocks);
int cluster_bits = EXT4_SB(sb)->s_cluster_bits;
blk = EXT4_SB(sb)->s_sbh->b_blocknr + 1 + EXT4_SB(sb)->s_gdb_count;
data = (__le32 *)dind->b_data + (EXT4_SB(sb)->s_gdb_count %
le16_to_cpu(EXT4_SB(sb)->s_es->s_reserved_gdt_blocks);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get_write_access");
err = ext4_journal_get_write_access(handle, sb, EXT4_SB(sb)->s_sbh,
lock_buffer(EXT4_SB(sb)->s_sbh);
unlock_buffer(EXT4_SB(sb)->s_sbh);
ext4_handle_dirty_metadata(handle, NULL, EXT4_SB(sb)->s_sbh);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
unsigned int itb = EXT4_SB(sb)->s_itb_per_group;
start_blk += EXT4_SB(sb)->s_itb_per_group;
EXT4_NUM_B2C(EXT4_SB(sb),
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
int group_table_count[] = {1, 1, EXT4_SB(sb)->s_itb_per_group};
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
ext4_fsblk_t gdblock = EXT4_SB(sb)->s_sbh->b_blocknr + 1 + gdb_num;
BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get_write_access");
err = ext4_journal_get_write_access(handle, sb, EXT4_SB(sb)->s_sbh,
(9 - EXT4_SB(sb)->s_cluster_bits);
o_group_desc = rcu_dereference(EXT4_SB(sb)->s_group_desc);
EXT4_SB(sb)->s_gdb_count * sizeof(struct buffer_head *));
rcu_assign_pointer(EXT4_SB(sb)->s_group_desc, n_group_desc);
EXT4_SB(sb)->s_gdb_count++;
lock_buffer(EXT4_SB(sb)->s_sbh);
unlock_buffer(EXT4_SB(sb)->s_sbh);
err = ext4_handle_dirty_metadata(handle, NULL, EXT4_SB(sb)->s_sbh);
o_group_desc = rcu_dereference(EXT4_SB(sb)->s_group_desc);
EXT4_SB(sb)->s_gdb_count * sizeof(struct buffer_head *));
rcu_assign_pointer(EXT4_SB(sb)->s_group_desc, n_group_desc);
atomic_inc(&EXT4_SB(sb)->s_warning_count);
return ___ratelimit(&(EXT4_SB(sb)->s_warning_ratelimit_state),
EXT4_SB(sb)->s_mount_state |= EXT4_ERROR_FS;
schedule_work(&EXT4_SB(sb)->s_sb_upd_work);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (!(EXT4_SB(inode->i_sb)->s_mount_state & EXT4_ERROR_FS) &&
if (!EXT4_SB(inode->i_sb)->s_journal)
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
const struct ext4_sb_info *sbi = EXT4_SB(sb);
fscrypt_is_dummy_policy_set(&EXT4_SB(sb)->s_dummy_enc_policy))
EXT4_SB(sb)->s_dummy_enc_policy = ctx->dummy_enc_policy;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_super_block *es = EXT4_SB(sb)->s_es;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
(le32_to_cpu(EXT4_SB(sb)->s_es->s_feature_incompat) &
(le32_to_cpu(EXT4_SB(sb)->s_es->s_feature_ro_compat) &
le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block)) {
ext4_group_t ngroups = EXT4_SB(sb)->s_groups_count;
int nr = EXT4_SB(sb)->s_mb_prefetch;
EXT4_SB(elr->lr_super)->s_li_wait_mult);
EXT4_SB(elr->lr_super)->s_li_request = NULL;
ext4_remove_li_request(EXT4_SB(sb)->s_li_request);
ext4_group_t group, ngroups = EXT4_SB(sb)->s_groups_count;
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (EXT4_SB(sb)->s_journal && ext4_is_quota_journalled(sb))
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
!jbd2_journal_set_features(EXT4_SB(sb)->s_journal, 0, 0,
!jbd2_journal_set_features(EXT4_SB(sb)->s_journal, 0, 0,
schedule_work(&EXT4_SB(sb)->s_sb_upd_work);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
EXT4_SB(sb)->rsv_conversion_wq =
if (!EXT4_SB(sb)->rsv_conversion_wq) {
EXT4_SB(sb)->s_mount_state |= EXT4_ORPHAN_FS;
EXT4_SB(sb)->s_mount_state &= ~EXT4_ORPHAN_FS;
if (EXT4_SB(sb)->rsv_conversion_wq)
destroy_workqueue(EXT4_SB(sb)->rsv_conversion_wq);
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (memcmp(EXT4_SB(sb)->s_es->s_journal_uuid, es->s_uuid, 16)) {
EXT4_SB(sb)->s_journal_bdev_file = bdev_file;
ext4_journal_destroy(EXT4_SB(sb), journal);
es->s_state |= cpu_to_le16(EXT4_SB(sb)->s_mount_state &
EXT4_SB(sb)->s_journal = journal;
ext4_journal_destroy(EXT4_SB(sb), journal);
ext4_journal_destroy(EXT4_SB(sb), journal);
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct buffer_head *sbh = EXT4_SB(sb)->s_sbh;
journal_t *journal = EXT4_SB(sb)->s_journal;
journal = EXT4_SB(sb)->s_journal;
EXT4_SB(sb)->s_mount_state |= EXT4_ERROR_FS;
return ext4_journal_force_commit(EXT4_SB(sb)->s_journal);
struct ext4_sb_info *sbi = EXT4_SB(sb);
journal_t *journal = EXT4_SB(sb)->s_journal;
struct ext4_sb_info *sbi = EXT4_SB(sb);
if (EXT4_SB(sb)->s_journal) {
struct ext4_sb_info *sbi = EXT4_SB(sb);
fc->s_fs_info = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
journal_t *journal = EXT4_SB(sb)->s_journal;
EXT4_SB(sb)->s_mount_state |= EXT4_ERROR_FS;
if (EXT4_SB(sb)->s_qf_names[type]) {
le32_to_cpu(EXT4_SB(sb)->s_es->s_usr_quota_inum),
le32_to_cpu(EXT4_SB(sb)->s_es->s_grp_quota_inum),
le32_to_cpu(EXT4_SB(sb)->s_es->s_prj_quota_inum)
schedule_work(&EXT4_SB(sb)->s_sb_upd_work);
le32_to_cpu(EXT4_SB(sb)->s_es->s_usr_quota_inum),
le32_to_cpu(EXT4_SB(sb)->s_es->s_grp_quota_inum),
le32_to_cpu(EXT4_SB(sb)->s_es->s_prj_quota_inum)
set_bit(EXT4_FLAGS_EMERGENCY_RO, &EXT4_SB(sb)->s_ext4_flags);
struct ext4_sb_info *sbi = EXT4_SB(sb);
___ratelimit(&(EXT4_SB(sb)->s_err_ratelimit_state), \
if (!sb || (EXT4_SB(sb)->s_journal &&
EXT4_SB(sb)->s_journal->j_flags & JBD2_ABORT))
atomic_inc(&EXT4_SB(sb)->s_msg_count);
if (!___ratelimit(&(EXT4_SB(sb)->s_msg_ratelimit_state),
struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_sb_info *sbi = EXT4_SB(sb);
EXT4_SB(sb)->s_sectors_written_start) >> 1)));
end = (void *)ext4_raw_inode(&iloc) + EXT4_SB(parent->i_sb)->s_inode_size;
dquot_free_block(inode, EXT4_C2B(EXT4_SB(inode->i_sb), 1));
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
hash = ext4_xattr_inode_hash(EXT4_SB(inode->i_sb), value, value_len);
EXT4_C2B(EXT4_SB(sb), 1));
EXT4_C2B(EXT4_SB(sb),
dquot_free_block(inode, EXT4_C2B(EXT4_SB(sb), 1));
memset(raw_inode, 0, EXT4_SB(inode->i_sb)->s_inode_size);
if (!EXT4_SB(inode->i_sb)->s_journal)
struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
hash = ext4_xattr_inode_hash(EXT4_SB(ea_inode->i_sb), buffer, size);
BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get_write_access");
if (ext4_journal_get_write_access(handle, sb, EXT4_SB(sb)->s_sbh,
lock_buffer(EXT4_SB(sb)->s_sbh);
unlock_buffer(EXT4_SB(sb)->s_sbh);
ext4_handle_dirty_metadata(handle, NULL, EXT4_SB(sb)->s_sbh);
size_t cluster_size = 1 << (EXT4_SB(sb)->s_cluster_bits +
EXT4_SB((inode)->i_sb)->s_inode_size)
__entry->num_fc = EXT4_SB(sb)->s_fc_stats.fc_num_commits;
EXT4_SB(sb)->s_fc_stats.fc_ineligible_commits;
__entry->nblks_agg = EXT4_SB(sb)->s_fc_stats.fc_numblks;
EXT4_SB(sb)->s_fc_stats.fc_ineligible_reason_count[i];
__entry->fc_commits = EXT4_SB(sb)->s_fc_stats.fc_num_commits;
EXT4_SB(sb)->s_fc_stats.fc_ineligible_commits;
__entry->fc_numblks = EXT4_SB(sb)->s_fc_stats.fc_numblks;