Lines Matching defs:sbi
54 struct ext2_sb_info *sbi = EXT2_SB(sb);
55 struct ext2_super_block *es = sbi->s_es;
58 spin_lock(&sbi->s_lock);
59 sbi->s_mount_state |= EXT2_ERROR_FS;
61 spin_unlock(&sbi->s_lock);
101 * This must be called with sbi->s_lock held.
148 struct ext2_sb_info *sbi = EXT2_SB(sb);
152 ext2_xattr_destroy_cache(sbi->s_ea_block_cache);
153 sbi->s_ea_block_cache = NULL;
156 struct ext2_super_block *es = sbi->s_es;
158 spin_lock(&sbi->s_lock);
159 es->s_state = cpu_to_le16(sbi->s_mount_state);
160 spin_unlock(&sbi->s_lock);
163 db_count = sbi->s_gdb_count;
165 brelse(sbi->s_group_desc[i]);
166 kvfree(sbi->s_group_desc);
167 kfree(sbi->s_debts);
168 percpu_counter_destroy(&sbi->s_freeblocks_counter);
169 percpu_counter_destroy(&sbi->s_freeinodes_counter);
170 percpu_counter_destroy(&sbi->s_dirs_counter);
171 brelse (sbi->s_sbh);
173 kfree(sbi->s_blockgroup_lock);
174 fs_put_dax(sbi->s_daxdev, NULL);
175 kfree(sbi);
239 struct ext2_sb_info *sbi = EXT2_SB(sb);
240 struct ext2_super_block *es = sbi->s_es;
243 spin_lock(&sbi->s_lock);
246 if (sbi->s_sb_block != 1)
247 seq_printf(seq, ",sb=%lu", sbi->s_sb_block);
254 if (!uid_eq(sbi->s_resuid, make_kuid(&init_user_ns, EXT2_DEF_RESUID)) ||
257 from_kuid_munged(&init_user_ns, sbi->s_resuid));
259 if (!gid_eq(sbi->s_resgid, make_kgid(&init_user_ns, EXT2_DEF_RESGID)) ||
262 from_kgid_munged(&init_user_ns, sbi->s_resgid));
314 spin_unlock(&sbi->s_lock);
636 struct ext2_sb_info *sbi = EXT2_SB(sb);
646 if (!(sbi->s_mount_state & EXT2_VALID_FS))
650 else if ((sbi->s_mount_state & EXT2_ERROR_FS))
674 sbi->s_groups_count,
677 sbi->s_mount_opt);
684 struct ext2_sb_info *sbi = EXT2_SB(sb);
688 for (i = 0; i < sbi->s_groups_count; i++) {
712 le32_to_cpu(gdp->bg_inode_table) + sbi->s_itb_per_group - 1 >
791 struct ext2_sb_info *sbi = EXT2_SB(sb);
794 first_meta_bg = le32_to_cpu(sbi->s_es->s_first_meta_bg);
799 bg = sbi->s_desc_per_block * nr;
807 struct ext2_sb_info * sbi;
823 sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
824 if (!sbi)
827 sbi->s_blockgroup_lock =
829 if (!sbi->s_blockgroup_lock) {
830 kfree(sbi);
833 sb->s_fs_info = sbi;
834 sbi->s_sb_block = sb_block;
835 sbi->s_daxdev = fs_dax_get_by_bdev(sb->s_bdev, &sbi->s_dax_part_off,
838 spin_lock_init(&sbi->s_lock);
874 sbi->s_es = es;
898 if (le16_to_cpu(sbi->s_es->s_errors) == EXT2_ERRORS_PANIC)
900 else if (le16_to_cpu(sbi->s_es->s_errors) == EXT2_ERRORS_CONTINUE)
913 sbi->s_mount_opt = opts.s_mount_opt;
914 sbi->s_resuid = opts.s_resuid;
915 sbi->s_resgid = opts.s_resgid;
954 blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size);
957 if (!sbi->s_daxdev) {
960 clear_opt(sbi->s_mount_opt, DAX);
963 clear_opt(sbi->s_mount_opt, DAX);
986 sbi->s_es = es;
999 sbi->s_inode_size = EXT2_GOOD_OLD_INODE_SIZE;
1000 sbi->s_first_ino = EXT2_GOOD_OLD_FIRST_INO;
1002 sbi->s_inode_size = le16_to_cpu(es->s_inode_size);
1003 sbi->s_first_ino = le32_to_cpu(es->s_first_ino);
1004 if ((sbi->s_inode_size < EXT2_GOOD_OLD_INODE_SIZE) ||
1005 !is_power_of_2(sbi->s_inode_size) ||
1006 (sbi->s_inode_size > blocksize)) {
1009 sbi->s_inode_size);
1014 sbi->s_blocks_per_group = le32_to_cpu(es->s_blocks_per_group);
1015 sbi->s_inodes_per_group = le32_to_cpu(es->s_inodes_per_group);
1017 sbi->s_inodes_per_block = sb->s_blocksize / EXT2_INODE_SIZE(sb);
1018 if (sbi->s_inodes_per_block == 0 || sbi->s_inodes_per_group == 0)
1020 sbi->s_itb_per_group = sbi->s_inodes_per_group /
1021 sbi->s_inodes_per_block;
1022 sbi->s_desc_per_block = sb->s_blocksize /
1024 sbi->s_sbh = bh;
1025 sbi->s_mount_state = le16_to_cpu(es->s_state);
1026 sbi->s_addr_per_block_bits =
1028 sbi->s_desc_per_block_bits =
1047 if (sbi->s_blocks_per_group > sb->s_blocksize * 8) {
1050 sbi->s_blocks_per_group);
1054 if (sbi->s_blocks_per_group <= sbi->s_itb_per_group + 3) {
1057 sbi->s_blocks_per_group, sbi->s_inodes_per_group + 3);
1060 if (sbi->s_inodes_per_group < sbi->s_inodes_per_block ||
1061 sbi->s_inodes_per_group > sb->s_blocksize * 8) {
1064 sbi->s_inodes_per_group);
1075 sbi->s_groups_count = ((le32_to_cpu(es->s_blocks_count) -
1078 if ((u64)sbi->s_groups_count * sbi->s_inodes_per_group !=
1082 (u64)sbi->s_groups_count * sbi->s_inodes_per_group);
1085 db_count = (sbi->s_groups_count + EXT2_DESC_PER_BLOCK(sb) - 1) /
1087 sbi->s_group_desc = kvmalloc_array(db_count,
1090 if (sbi->s_group_desc == NULL) {
1095 bgl_lock_init(sbi->s_blockgroup_lock);
1096 sbi->s_debts = kcalloc(sbi->s_groups_count, sizeof(*sbi->s_debts), GFP_KERNEL);
1097 if (!sbi->s_debts) {
1104 sbi->s_group_desc[i] = sb_bread(sb, block);
1105 if (!sbi->s_group_desc[i]) {
1107 brelse (sbi->s_group_desc[j]);
1117 sbi->s_gdb_count = db_count;
1118 get_random_bytes(&sbi->s_next_generation, sizeof(u32));
1119 spin_lock_init(&sbi->s_next_gen_lock);
1122 spin_lock_init(&sbi->s_rsv_window_lock);
1123 sbi->s_rsv_window_root = RB_ROOT;
1130 sbi->s_rsv_window_head.rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
1131 sbi->s_rsv_window_head.rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
1132 sbi->s_rsv_window_head.rsv_alloc_hit = 0;
1133 sbi->s_rsv_window_head.rsv_goal_size = 0;
1134 ext2_rsv_window_add(sb, &sbi->s_rsv_window_head);
1136 err = percpu_counter_init(&sbi->s_freeblocks_counter,
1139 err = percpu_counter_init(&sbi->s_freeinodes_counter,
1143 err = percpu_counter_init(&sbi->s_dirs_counter,
1153 sbi->s_ea_block_cache = ext2_xattr_create_cache();
1154 if (!sbi->s_ea_block_cache) {
1205 ext2_xattr_destroy_cache(sbi->s_ea_block_cache);
1206 percpu_counter_destroy(&sbi->s_freeblocks_counter);
1207 percpu_counter_destroy(&sbi->s_freeinodes_counter);
1208 percpu_counter_destroy(&sbi->s_dirs_counter);
1211 brelse(sbi->s_group_desc[i]);
1213 kvfree(sbi->s_group_desc);
1214 kfree(sbi->s_debts);
1218 fs_put_dax(sbi->s_daxdev, NULL);
1220 kfree(sbi->s_blockgroup_lock);
1221 kfree(sbi);
1272 struct ext2_sb_info *sbi = EXT2_SB(sb);
1281 spin_lock(&sbi->s_lock);
1286 spin_unlock(&sbi->s_lock);
1293 struct ext2_sb_info *sbi = EXT2_SB(sb);
1305 spin_lock(&sbi->s_lock);
1306 sbi->s_es->s_state = cpu_to_le16(sbi->s_mount_state);
1307 spin_unlock(&sbi->s_lock);
1308 ext2_sync_super(sb, sbi->s_es, 1);
1329 struct ext2_sb_info * sbi = EXT2_SB(sb);
1336 spin_lock(&sbi->s_lock);
1337 new_opts.s_mount_opt = sbi->s_mount_opt;
1338 new_opts.s_resuid = sbi->s_resuid;
1339 new_opts.s_resgid = sbi->s_resgid;
1340 spin_unlock(&sbi->s_lock);
1345 spin_lock(&sbi->s_lock);
1346 es = sbi->s_es;
1347 if ((sbi->s_mount_opt ^ new_opts.s_mount_opt) & EXT2_MOUNT_DAX) {
1356 !(sbi->s_mount_state & EXT2_VALID_FS))
1363 es->s_state = cpu_to_le16(sbi->s_mount_state);
1365 spin_unlock(&sbi->s_lock);
1376 spin_unlock(&sbi->s_lock);
1388 sbi->s_mount_state = le16_to_cpu(es->s_state);
1391 spin_unlock(&sbi->s_lock);
1398 spin_lock(&sbi->s_lock);
1400 sbi->s_mount_opt = new_opts.s_mount_opt;
1401 sbi->s_resuid = new_opts.s_resuid;
1402 sbi->s_resgid = new_opts.s_resgid;
1405 spin_unlock(&sbi->s_lock);
1413 struct ext2_sb_info *sbi = EXT2_SB(sb);
1414 struct ext2_super_block *es = sbi->s_es;
1416 spin_lock(&sbi->s_lock);
1419 sbi->s_overhead_last = 0;
1420 else if (sbi->s_blocks_last != le32_to_cpu(es->s_blocks_count)) {
1441 for (i = 0; i < sbi->s_groups_count; i++)
1449 overhead += (sbi->s_groups_count *
1450 (2 + sbi->s_itb_per_group));
1451 sbi->s_overhead_last = overhead;
1453 sbi->s_blocks_last = le32_to_cpu(es->s_blocks_count);
1458 buf->f_blocks = le32_to_cpu(es->s_blocks_count) - sbi->s_overhead_last;
1469 spin_unlock(&sbi->s_lock);