Lines Matching refs:block_group

21 					struct btrfs_block_group *block_group,
25 struct btrfs_block_group *block_group)
33 if (btrfs_fs_incompat(block_group->fs_info, EXTENT_TREE_V2))
34 key.offset = block_group->global_root_id;
35 return btrfs_global_root(block_group->fs_info, &key);
70 struct btrfs_block_group *block_group,
73 struct btrfs_root *root = btrfs_free_space_root(block_group);
79 key.objectid = block_group->start;
81 key.offset = block_group->length;
103 struct btrfs_block_group *block_group,
106 struct btrfs_fs_info *fs_info = block_group->fs_info;
107 struct btrfs_root *root = btrfs_free_space_root(block_group);
111 key.objectid = block_group->start;
113 key.offset = block_group->length;
120 block_group->start);
206 struct btrfs_block_group *block_group,
210 struct btrfs_root *root = btrfs_free_space_root(block_group);
223 bitmap_size = free_space_bitmap_size(fs_info, block_group->length);
230 start = block_group->start;
231 end = block_group->start + block_group->length;
249 ASSERT(found_key.objectid == block_group->start);
250 ASSERT(found_key.offset == block_group->length);
280 info = search_free_space_info(trans, block_group, path, 1);
296 block_group->start, extent_count,
344 struct btrfs_block_group *block_group,
348 struct btrfs_root *root = btrfs_free_space_root(block_group);
360 bitmap_size = free_space_bitmap_size(fs_info, block_group->length);
367 start = block_group->start;
368 end = block_group->start + block_group->length;
386 ASSERT(found_key.objectid == block_group->start);
387 ASSERT(found_key.offset == block_group->length);
423 info = search_free_space_info(trans, block_group, path, 1);
436 nrbits = block_group->length >> block_group->fs_info->sectorsize_bits;
443 key.objectid = start + start_bit * block_group->fs_info->sectorsize;
445 key.offset = (end_bit - start_bit) * block_group->fs_info->sectorsize;
460 block_group->start, extent_count,
476 struct btrfs_block_group *block_group,
488 info = search_free_space_info(trans, block_group, path, 1);
502 extent_count > block_group->bitmap_high_thresh) {
503 ret = convert_free_space_to_bitmaps(trans, block_group, path);
505 extent_count < block_group->bitmap_low_thresh) {
506 ret = convert_free_space_to_extents(trans, block_group, path);
514 int free_space_test_bit(struct btrfs_block_group *block_group,
532 block_group->fs_info->sectorsize);
537 struct btrfs_block_group *block_group,
541 struct btrfs_fs_info *fs_info = block_group->fs_info;
605 struct btrfs_block_group *block_group,
609 struct btrfs_root *root = btrfs_free_space_root(block_group);
621 if (start > block_group->start) {
622 u64 prev_block = start - block_group->fs_info->sectorsize;
632 prev_bit = free_space_test_bit(block_group, path, prev_block);
660 free_space_set_bits(trans, block_group, path, &cur_start, &cur_size,
673 if (end < block_group->start + block_group->length) {
682 next_bit = free_space_test_bit(block_group, path, end);
710 ret = update_free_space_extent_count(trans, block_group, path,
718 struct btrfs_block_group *block_group,
722 struct btrfs_root *root = btrfs_free_space_root(block_group);
796 ret = update_free_space_extent_count(trans, block_group, path,
805 struct btrfs_block_group *block_group,
812 if (test_bit(BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE, &block_group->runtime_flags)) {
813 ret = __add_block_group_free_space(trans, block_group, path);
818 info = search_free_space_info(NULL, block_group, path, 0);
825 return modify_free_space_bitmap(trans, block_group, path,
828 return remove_free_space_extent(trans, block_group, path,
836 struct btrfs_block_group *block_group;
849 block_group = btrfs_lookup_block_group(trans->fs_info, start);
850 if (!block_group) {
856 mutex_lock(&block_group->free_space_lock);
857 ret = __remove_from_free_space_tree(trans, block_group, path, start,
859 mutex_unlock(&block_group->free_space_lock);
861 btrfs_put_block_group(block_group);
870 struct btrfs_block_group *block_group,
874 struct btrfs_root *root = btrfs_free_space_root(block_group);
904 if (start == block_group->start)
924 ASSERT(found_start >= block_group->start &&
925 found_end > block_group->start);
944 if (end == block_group->start + block_group->length)
964 ASSERT(found_start >= block_group->start &&
965 found_end > block_group->start);
989 ret = update_free_space_extent_count(trans, block_group, path,
998 struct btrfs_block_group *block_group,
1005 if (test_bit(BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE, &block_group->runtime_flags)) {
1006 ret = __add_block_group_free_space(trans, block_group, path);
1011 info = search_free_space_info(NULL, block_group, path, 0);
1018 return modify_free_space_bitmap(trans, block_group, path,
1021 return add_free_space_extent(trans, block_group, path, start,
1029 struct btrfs_block_group *block_group;
1042 block_group = btrfs_lookup_block_group(trans->fs_info, start);
1043 if (!block_group) {
1049 mutex_lock(&block_group->free_space_lock);
1050 ret = __add_to_free_space_tree(trans, block_group, path, start, size);
1051 mutex_unlock(&block_group->free_space_lock);
1053 btrfs_put_block_group(block_group);
1067 struct btrfs_block_group *block_group)
1086 ret = add_new_free_space_info(trans, block_group, path2);
1090 mutex_lock(&block_group->free_space_lock);
1099 key.objectid = block_group->start;
1109 start = block_group->start;
1110 end = block_group->start + block_group->length;
1121 block_group,
1134 if (key.objectid != block_group->start)
1145 ret = __add_to_free_space_tree(trans, block_group, path2,
1153 mutex_unlock(&block_group->free_space_lock);
1165 struct btrfs_block_group *block_group;
1193 block_group = rb_entry(node, struct btrfs_block_group,
1195 ret = populate_free_space_tree(trans, block_group);
1339 struct btrfs_block_group *block_group;
1341 block_group = rb_entry(node, struct btrfs_block_group,
1343 ret = populate_free_space_tree(trans, block_group);
1362 struct btrfs_block_group *block_group,
1367 clear_bit(BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE, &block_group->runtime_flags);
1369 ret = add_new_free_space_info(trans, block_group, path);
1373 return __add_to_free_space_tree(trans, block_group, path,
1374 block_group->start,
1375 block_group->length);
1379 struct btrfs_block_group *block_group)
1388 mutex_lock(&block_group->free_space_lock);
1389 if (!test_bit(BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE, &block_group->runtime_flags))
1398 ret = __add_block_group_free_space(trans, block_group, path);
1402 mutex_unlock(&block_group->free_space_lock);
1409 struct btrfs_block_group *block_group)
1411 struct btrfs_root *root = btrfs_free_space_root(block_group);
1422 if (test_bit(BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE, &block_group->runtime_flags)) {
1433 start = block_group->start;
1434 end = block_group->start + block_group->length;
1452 ASSERT(found_key.objectid == block_group->start);
1453 ASSERT(found_key.offset == block_group->length);
1488 struct btrfs_block_group *block_group;
1500 block_group = caching_ctl->block_group;
1501 fs_info = block_group->fs_info;
1502 root = btrfs_free_space_root(block_group);
1504 end = block_group->start + block_group->length;
1523 bit = free_space_test_bit(block_group, path, offset);
1529 ret = btrfs_add_new_free_space(block_group,
1547 ret = btrfs_add_new_free_space(block_group, extent_start, end, NULL);
1556 block_group->start, extent_count,
1572 struct btrfs_block_group *block_group;
1581 block_group = caching_ctl->block_group;
1582 fs_info = block_group->fs_info;
1583 root = btrfs_free_space_root(block_group);
1585 end = block_group->start + block_group->length;
1604 ret = btrfs_add_new_free_space(block_group, key.objectid,
1620 block_group->start, extent_count,
1634 struct btrfs_block_group *block_group;
1640 block_group = caching_ctl->block_group;
1654 info = search_free_space_info(NULL, block_group, path, 0);