Lines Matching refs:block_group
16 struct btrfs_block_group *block_group,
51 struct btrfs_block_group *block_group, in add_new_free_space_info() argument
60 key.objectid = block_group->start; in add_new_free_space_info()
62 key.offset = block_group->length; in add_new_free_space_info()
84 struct btrfs_block_group *block_group, in search_free_space_info() argument
87 struct btrfs_fs_info *fs_info = block_group->fs_info; in search_free_space_info()
92 key.objectid = block_group->start; in search_free_space_info()
94 key.offset = block_group->length; in search_free_space_info()
101 block_group->start); in search_free_space_info()
186 struct btrfs_block_group *block_group, in convert_free_space_to_bitmaps() argument
203 bitmap_size = free_space_bitmap_size(block_group->length, in convert_free_space_to_bitmaps()
211 start = block_group->start; in convert_free_space_to_bitmaps()
212 end = block_group->start + block_group->length; in convert_free_space_to_bitmaps()
230 ASSERT(found_key.objectid == block_group->start); in convert_free_space_to_bitmaps()
231 ASSERT(found_key.offset == block_group->length); in convert_free_space_to_bitmaps()
261 info = search_free_space_info(trans, block_group, path, 1); in convert_free_space_to_bitmaps()
277 block_group->start, extent_count, in convert_free_space_to_bitmaps()
326 struct btrfs_block_group *block_group, in convert_free_space_to_extents() argument
342 bitmap_size = free_space_bitmap_size(block_group->length, in convert_free_space_to_extents()
350 start = block_group->start; in convert_free_space_to_extents()
351 end = block_group->start + block_group->length; in convert_free_space_to_extents()
369 ASSERT(found_key.objectid == block_group->start); in convert_free_space_to_extents()
370 ASSERT(found_key.offset == block_group->length); in convert_free_space_to_extents()
406 info = search_free_space_info(trans, block_group, path, 1); in convert_free_space_to_extents()
419 nrbits = div_u64(block_group->length, block_group->fs_info->sectorsize); in convert_free_space_to_extents()
426 key.objectid = start + start_bit * block_group->fs_info->sectorsize; in convert_free_space_to_extents()
428 key.offset = (end_bit - start_bit) * block_group->fs_info->sectorsize; in convert_free_space_to_extents()
443 block_group->start, extent_count, in convert_free_space_to_extents()
459 struct btrfs_block_group *block_group, in update_free_space_extent_count() argument
471 info = search_free_space_info(trans, block_group, path, 1); in update_free_space_extent_count()
485 extent_count > block_group->bitmap_high_thresh) { in update_free_space_extent_count()
486 ret = convert_free_space_to_bitmaps(trans, block_group, path); in update_free_space_extent_count()
488 extent_count < block_group->bitmap_low_thresh) { in update_free_space_extent_count()
489 ret = convert_free_space_to_extents(trans, block_group, path); in update_free_space_extent_count()
497 int free_space_test_bit(struct btrfs_block_group *block_group, in free_space_test_bit() argument
515 block_group->fs_info->sectorsize); in free_space_test_bit()
519 static void free_space_set_bits(struct btrfs_block_group *block_group, in free_space_set_bits() argument
523 struct btrfs_fs_info *fs_info = block_group->fs_info; in free_space_set_bits()
587 struct btrfs_block_group *block_group, in modify_free_space_bitmap() argument
591 struct btrfs_root *root = block_group->fs_info->free_space_root; in modify_free_space_bitmap()
603 if (start > block_group->start) { in modify_free_space_bitmap()
604 u64 prev_block = start - block_group->fs_info->sectorsize; in modify_free_space_bitmap()
614 prev_bit = free_space_test_bit(block_group, path, prev_block); in modify_free_space_bitmap()
642 free_space_set_bits(block_group, path, &cur_start, &cur_size, in modify_free_space_bitmap()
655 if (end < block_group->start + block_group->length) { in modify_free_space_bitmap()
664 next_bit = free_space_test_bit(block_group, path, end); in modify_free_space_bitmap()
692 ret = update_free_space_extent_count(trans, block_group, path, in modify_free_space_bitmap()
700 struct btrfs_block_group *block_group, in remove_free_space_extent() argument
778 ret = update_free_space_extent_count(trans, block_group, path, in remove_free_space_extent()
787 struct btrfs_block_group *block_group, in __remove_from_free_space_tree() argument
794 if (block_group->needs_free_space) { in __remove_from_free_space_tree()
795 ret = __add_block_group_free_space(trans, block_group, path); in __remove_from_free_space_tree()
800 info = search_free_space_info(NULL, block_group, path, 0); in __remove_from_free_space_tree()
807 return modify_free_space_bitmap(trans, block_group, path, in __remove_from_free_space_tree()
810 return remove_free_space_extent(trans, block_group, path, in __remove_from_free_space_tree()
818 struct btrfs_block_group *block_group; in remove_from_free_space_tree() local
831 block_group = btrfs_lookup_block_group(trans->fs_info, start); in remove_from_free_space_tree()
832 if (!block_group) { in remove_from_free_space_tree()
838 mutex_lock(&block_group->free_space_lock); in remove_from_free_space_tree()
839 ret = __remove_from_free_space_tree(trans, block_group, path, start, in remove_from_free_space_tree()
841 mutex_unlock(&block_group->free_space_lock); in remove_from_free_space_tree()
843 btrfs_put_block_group(block_group); in remove_from_free_space_tree()
852 struct btrfs_block_group *block_group, in add_free_space_extent() argument
886 if (start == block_group->start) in add_free_space_extent()
906 ASSERT(found_start >= block_group->start && in add_free_space_extent()
907 found_end > block_group->start); in add_free_space_extent()
926 if (end == block_group->start + block_group->length) in add_free_space_extent()
946 ASSERT(found_start >= block_group->start && in add_free_space_extent()
947 found_end > block_group->start); in add_free_space_extent()
971 ret = update_free_space_extent_count(trans, block_group, path, in add_free_space_extent()
980 struct btrfs_block_group *block_group, in __add_to_free_space_tree() argument
987 if (block_group->needs_free_space) { in __add_to_free_space_tree()
988 ret = __add_block_group_free_space(trans, block_group, path); in __add_to_free_space_tree()
993 info = search_free_space_info(NULL, block_group, path, 0); in __add_to_free_space_tree()
1000 return modify_free_space_bitmap(trans, block_group, path, in __add_to_free_space_tree()
1003 return add_free_space_extent(trans, block_group, path, start, in __add_to_free_space_tree()
1011 struct btrfs_block_group *block_group; in add_to_free_space_tree() local
1024 block_group = btrfs_lookup_block_group(trans->fs_info, start); in add_to_free_space_tree()
1025 if (!block_group) { in add_to_free_space_tree()
1031 mutex_lock(&block_group->free_space_lock); in add_to_free_space_tree()
1032 ret = __add_to_free_space_tree(trans, block_group, path, start, size); in add_to_free_space_tree()
1033 mutex_unlock(&block_group->free_space_lock); in add_to_free_space_tree()
1035 btrfs_put_block_group(block_group); in add_to_free_space_tree()
1049 struct btrfs_block_group *block_group) in populate_free_space_tree() argument
1068 ret = add_new_free_space_info(trans, block_group, path2); in populate_free_space_tree()
1072 mutex_lock(&block_group->free_space_lock); in populate_free_space_tree()
1081 key.objectid = block_group->start; in populate_free_space_tree()
1090 start = block_group->start; in populate_free_space_tree()
1091 end = block_group->start + block_group->length; in populate_free_space_tree()
1102 block_group, in populate_free_space_tree()
1115 if (key.objectid != block_group->start) in populate_free_space_tree()
1126 ret = __add_to_free_space_tree(trans, block_group, path2, in populate_free_space_tree()
1134 mutex_unlock(&block_group->free_space_lock); in populate_free_space_tree()
1146 struct btrfs_block_group *block_group; in btrfs_create_free_space_tree() local
1166 block_group = rb_entry(node, struct btrfs_block_group, in btrfs_create_free_space_tree()
1168 ret = populate_free_space_tree(trans, block_group); in btrfs_create_free_space_tree()
1277 struct btrfs_block_group *block_group, in __add_block_group_free_space() argument
1282 block_group->needs_free_space = 0; in __add_block_group_free_space()
1284 ret = add_new_free_space_info(trans, block_group, path); in __add_block_group_free_space()
1288 return __add_to_free_space_tree(trans, block_group, path, in __add_block_group_free_space()
1289 block_group->start, in __add_block_group_free_space()
1290 block_group->length); in __add_block_group_free_space()
1294 struct btrfs_block_group *block_group) in add_block_group_free_space() argument
1303 mutex_lock(&block_group->free_space_lock); in add_block_group_free_space()
1304 if (!block_group->needs_free_space) in add_block_group_free_space()
1313 ret = __add_block_group_free_space(trans, block_group, path); in add_block_group_free_space()
1317 mutex_unlock(&block_group->free_space_lock); in add_block_group_free_space()
1324 struct btrfs_block_group *block_group) in remove_block_group_free_space() argument
1337 if (block_group->needs_free_space) { in remove_block_group_free_space()
1348 start = block_group->start; in remove_block_group_free_space()
1349 end = block_group->start + block_group->length; in remove_block_group_free_space()
1367 ASSERT(found_key.objectid == block_group->start); in remove_block_group_free_space()
1368 ASSERT(found_key.offset == block_group->length); in remove_block_group_free_space()
1403 struct btrfs_block_group *block_group; in load_free_space_bitmaps() local
1415 block_group = caching_ctl->block_group; in load_free_space_bitmaps()
1416 fs_info = block_group->fs_info; in load_free_space_bitmaps()
1419 end = block_group->start + block_group->length; in load_free_space_bitmaps()
1440 bit = free_space_test_bit(block_group, path, offset); in load_free_space_bitmaps()
1444 total_found += add_new_free_space(block_group, in load_free_space_bitmaps()
1458 total_found += add_new_free_space(block_group, extent_start, in load_free_space_bitmaps()
1466 block_group->start, extent_count, in load_free_space_bitmaps()
1484 struct btrfs_block_group *block_group; in load_free_space_extents() local
1493 block_group = caching_ctl->block_group; in load_free_space_extents()
1494 fs_info = block_group->fs_info; in load_free_space_extents()
1497 end = block_group->start + block_group->length; in load_free_space_extents()
1516 total_found += add_new_free_space(block_group, key.objectid, in load_free_space_extents()
1528 block_group->start, extent_count, in load_free_space_extents()
1544 struct btrfs_block_group *block_group; in load_free_space_tree() local
1550 block_group = caching_ctl->block_group; in load_free_space_tree()
1564 info = search_free_space_info(NULL, block_group, path, 0); in load_free_space_tree()