Lines Matching refs:sb
39 struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb, in ext2_get_group_desc() argument
46 struct ext2_sb_info *sbi = EXT2_SB(sb); in ext2_get_group_desc()
49 ext2_error (sb, "ext2_get_group_desc", in ext2_get_group_desc()
57 group_desc = block_group >> EXT2_DESC_PER_BLOCK_BITS(sb); in ext2_get_group_desc()
58 offset = block_group & (EXT2_DESC_PER_BLOCK(sb) - 1); in ext2_get_group_desc()
60 ext2_error (sb, "ext2_get_group_desc", in ext2_get_group_desc()
73 static int ext2_valid_block_bitmap(struct super_block *sb, in ext2_valid_block_bitmap() argument
83 group_first_block = ext2_group_first_block_no(sb, block_group); in ext2_valid_block_bitmap()
103 offset + EXT2_SB(sb)->s_itb_per_group, in ext2_valid_block_bitmap()
105 if (next_zero_bit >= offset + EXT2_SB(sb)->s_itb_per_group) in ext2_valid_block_bitmap()
110 ext2_error(sb, __func__, in ext2_valid_block_bitmap()
124 read_block_bitmap(struct super_block *sb, unsigned int block_group) in read_block_bitmap() argument
130 desc = ext2_get_group_desc(sb, block_group, NULL); in read_block_bitmap()
134 bh = sb_getblk(sb, bitmap_blk); in read_block_bitmap()
136 ext2_error(sb, __func__, in read_block_bitmap()
147 ext2_error(sb, __func__, in read_block_bitmap()
154 ext2_valid_block_bitmap(sb, desc, block_group, bh); in read_block_bitmap()
162 static void group_adjust_blocks(struct super_block *sb, int group_no, in group_adjust_blocks() argument
166 struct ext2_sb_info *sbi = EXT2_SB(sb); in group_adjust_blocks()
265 unsigned int group, struct super_block * sb) in goal_in_my_reservation() argument
269 group_first_block = ext2_group_first_block_no(sb, group); in goal_in_my_reservation()
270 group_last_block = group_first_block + EXT2_BLOCKS_PER_GROUP(sb) - 1; in goal_in_my_reservation()
329 void ext2_rsv_window_add(struct super_block *sb, in ext2_rsv_window_add() argument
332 struct rb_root *root = &EXT2_SB(sb)->s_rsv_window_root; in ext2_rsv_window_add()
368 static void rsv_window_remove(struct super_block *sb, in rsv_window_remove() argument
374 rb_erase(&rsv->rsv_node, &EXT2_SB(sb)->s_rsv_window_root); in rsv_window_remove()
414 struct super_block *sb = inode->i_sb; in ext2_init_block_alloc_info() local
428 if (!test_opt(sb, RESERVATION)) in ext2_init_block_alloc_info()
485 struct super_block * sb = inode->i_sb; in ext2_free_blocks() local
486 struct ext2_sb_info * sbi = EXT2_SB(sb); in ext2_free_blocks()
494 ext2_error (sb, "ext2_free_blocks", in ext2_free_blocks()
505 EXT2_BLOCKS_PER_GROUP(sb); in ext2_free_blocks()
507 EXT2_BLOCKS_PER_GROUP(sb); in ext2_free_blocks()
512 if (bit + count > EXT2_BLOCKS_PER_GROUP(sb)) { in ext2_free_blocks()
513 overflow = bit + count - EXT2_BLOCKS_PER_GROUP(sb); in ext2_free_blocks()
517 bitmap_bh = read_block_bitmap(sb, block_group); in ext2_free_blocks()
521 desc = ext2_get_group_desc (sb, block_group, &bh2); in ext2_free_blocks()
531 ext2_error (sb, "ext2_free_blocks", in ext2_free_blocks()
541 ext2_error(sb, __func__, in ext2_free_blocks()
549 if (sb->s_flags & MS_SYNCHRONOUS) in ext2_free_blocks()
552 group_adjust_blocks(sb, block_group, desc, bh2, group_freed); in ext2_free_blocks()
664 ext2_try_to_allocate(struct super_block *sb, int group, in ext2_try_to_allocate() argument
675 group_first_block = ext2_group_first_block_no(sb, group); in ext2_try_to_allocate()
682 if (end > EXT2_BLOCKS_PER_GROUP(sb)) in ext2_try_to_allocate()
684 end = EXT2_BLOCKS_PER_GROUP(sb); in ext2_try_to_allocate()
694 end = EXT2_BLOCKS_PER_GROUP(sb); in ext2_try_to_allocate()
697 BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb)); in ext2_try_to_allocate()
716 if (ext2_set_bit_atomic(sb_bgl_lock(EXT2_SB(sb), group), grp_goal, in ext2_try_to_allocate()
731 && !ext2_set_bit_atomic(sb_bgl_lock(EXT2_SB(sb), group), in ext2_try_to_allocate()
779 struct super_block * sb, in find_next_reservable_window() argument
842 rsv_window_remove(sb, my_rsv); in find_next_reservable_window()
856 ext2_rsv_window_add(sb, my_rsv); in find_next_reservable_window()
899 ext2_grpblk_t grp_goal, struct super_block *sb, in alloc_new_reservation() argument
905 struct rb_root *fs_rsv_root = &EXT2_SB(sb)->s_rsv_window_root; in alloc_new_reservation()
908 spinlock_t *rsv_lock = &EXT2_SB(sb)->s_rsv_window_lock; in alloc_new_reservation()
910 group_first_block = ext2_group_first_block_no(sb, group); in alloc_new_reservation()
911 group_end_block = group_first_block + (EXT2_BLOCKS_PER_GROUP(sb) - 1); in alloc_new_reservation()
969 ret = find_next_reservable_window(search_head, my_rsv, sb, in alloc_new_reservation()
974 rsv_window_remove(sb, my_rsv); in alloc_new_reservation()
1000 rsv_window_remove(sb, my_rsv); in alloc_new_reservation()
1041 struct super_block *sb, int size) in try_to_extend_reservation() argument
1045 spinlock_t *rsv_lock = &EXT2_SB(sb)->s_rsv_window_lock; in try_to_extend_reservation()
1092 ext2_try_to_allocate_with_rsv(struct super_block *sb, unsigned int group, in ext2_try_to_allocate_with_rsv() argument
1108 return ext2_try_to_allocate(sb, group, bitmap_bh, in ext2_try_to_allocate_with_rsv()
1117 group_first_block = ext2_group_first_block_no(sb, group); in ext2_try_to_allocate_with_rsv()
1118 group_last_block = group_first_block + (EXT2_BLOCKS_PER_GROUP(sb) - 1); in ext2_try_to_allocate_with_rsv()
1138 grp_goal, group, sb)) { in ext2_try_to_allocate_with_rsv()
1141 ret = alloc_new_reservation(my_rsv, grp_goal, sb, in ext2_try_to_allocate_with_rsv()
1147 grp_goal, group, sb)) in ext2_try_to_allocate_with_rsv()
1154 try_to_extend_reservation(my_rsv, sb, in ext2_try_to_allocate_with_rsv()
1160 rsv_window_dump(&EXT2_SB(sb)->s_rsv_window_root, 1); in ext2_try_to_allocate_with_rsv()
1163 ret = ext2_try_to_allocate(sb, group, bitmap_bh, grp_goal, in ext2_try_to_allocate_with_rsv()
1223 struct super_block *sb; in ext2_new_blocks() local
1235 sb = inode->i_sb; in ext2_new_blocks()
1246 sbi = EXT2_SB(sb); in ext2_new_blocks()
1247 es = EXT2_SB(sb)->s_es; in ext2_new_blocks()
1276 EXT2_BLOCKS_PER_GROUP(sb); in ext2_new_blocks()
1279 gdp = ext2_get_group_desc(sb, group_no, &gdp_bh); in ext2_new_blocks()
1295 EXT2_BLOCKS_PER_GROUP(sb)); in ext2_new_blocks()
1296 bitmap_bh = read_block_bitmap(sb, group_no); in ext2_new_blocks()
1299 grp_alloc_blk = ext2_try_to_allocate_with_rsv(sb, group_no, in ext2_new_blocks()
1306 ngroups = EXT2_SB(sb)->s_groups_count; in ext2_new_blocks()
1317 gdp = ext2_get_group_desc(sb, group_no, &gdp_bh); in ext2_new_blocks()
1337 bitmap_bh = read_block_bitmap(sb, group_no); in ext2_new_blocks()
1343 grp_alloc_blk = ext2_try_to_allocate_with_rsv(sb, group_no, in ext2_new_blocks()
1370 ret_block = grp_alloc_blk + ext2_group_first_block_no(sb, group_no); in ext2_new_blocks()
1375 EXT2_SB(sb)->s_itb_per_group) || in ext2_new_blocks()
1377 EXT2_SB(sb)->s_itb_per_group)) { in ext2_new_blocks()
1378 ext2_error(sb, "ext2_new_blocks", in ext2_new_blocks()
1393 ext2_error(sb, "ext2_new_blocks", in ext2_new_blocks()
1400 group_adjust_blocks(sb, group_no, gdp, gdp_bh, -num); in ext2_new_blocks()
1404 if (sb->s_flags & MS_SYNCHRONOUS) in ext2_new_blocks()
1446 unsigned long ext2_count_free_blocks (struct super_block * sb) in ext2_count_free_blocks() argument
1455 es = EXT2_SB(sb)->s_es; in ext2_count_free_blocks()
1459 for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) { in ext2_count_free_blocks()
1461 desc = ext2_get_group_desc (sb, i, NULL); in ext2_count_free_blocks()
1465 bitmap_bh = read_block_bitmap(sb, i); in ext2_count_free_blocks()
1469 x = ext2_count_free(bitmap_bh, sb->s_blocksize); in ext2_count_free_blocks()
1480 for (i = 0; i < EXT2_SB(sb)->s_groups_count; i++) { in ext2_count_free_blocks()
1481 desc = ext2_get_group_desc (sb, i, NULL); in ext2_count_free_blocks()
1515 int ext2_bg_has_super(struct super_block *sb, int group) in ext2_bg_has_super() argument
1517 if (EXT2_HAS_RO_COMPAT_FEATURE(sb,EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER)&& in ext2_bg_has_super()
1532 unsigned long ext2_bg_num_gdb(struct super_block *sb, int group) in ext2_bg_num_gdb() argument
1534 return ext2_bg_has_super(sb, group) ? EXT2_SB(sb)->s_gdb_count : 0; in ext2_bg_num_gdb()