Lines Matching refs:block_group

15 					struct btrfs_block_group_cache *block_group,
47 struct btrfs_block_group_cache *block_group, in add_new_free_space_info() argument
56 key.objectid = block_group->key.objectid; in add_new_free_space_info()
58 key.offset = block_group->key.offset; in add_new_free_space_info()
80 struct btrfs_block_group_cache *block_group, in search_free_space_info() argument
87 key.objectid = block_group->key.objectid; in search_free_space_info()
89 key.offset = block_group->key.offset; in search_free_space_info()
96 block_group->key.objectid); in search_free_space_info()
180 struct btrfs_block_group_cache *block_group, in convert_free_space_to_bitmaps() argument
197 bitmap_size = free_space_bitmap_size(block_group->key.offset, in convert_free_space_to_bitmaps()
205 start = block_group->key.objectid; in convert_free_space_to_bitmaps()
206 end = block_group->key.objectid + block_group->key.offset; in convert_free_space_to_bitmaps()
224 ASSERT(found_key.objectid == block_group->key.objectid); in convert_free_space_to_bitmaps()
225 ASSERT(found_key.offset == block_group->key.offset); in convert_free_space_to_bitmaps()
255 info = search_free_space_info(trans, fs_info, block_group, path, 1); in convert_free_space_to_bitmaps()
271 block_group->key.objectid, extent_count, in convert_free_space_to_bitmaps()
319 struct btrfs_block_group_cache *block_group, in convert_free_space_to_extents() argument
335 bitmap_size = free_space_bitmap_size(block_group->key.offset, in convert_free_space_to_extents()
343 start = block_group->key.objectid; in convert_free_space_to_extents()
344 end = block_group->key.objectid + block_group->key.offset; in convert_free_space_to_extents()
362 ASSERT(found_key.objectid == block_group->key.objectid); in convert_free_space_to_extents()
363 ASSERT(found_key.offset == block_group->key.offset); in convert_free_space_to_extents()
399 info = search_free_space_info(trans, fs_info, block_group, path, 1); in convert_free_space_to_extents()
412 nrbits = div_u64(block_group->key.offset, block_group->fs_info->sectorsize); in convert_free_space_to_extents()
419 key.objectid = start + start_bit * block_group->fs_info->sectorsize; in convert_free_space_to_extents()
421 key.offset = (end_bit - start_bit) * block_group->fs_info->sectorsize; in convert_free_space_to_extents()
436 block_group->key.objectid, extent_count, in convert_free_space_to_extents()
452 struct btrfs_block_group_cache *block_group, in update_free_space_extent_count() argument
464 info = search_free_space_info(trans, trans->fs_info, block_group, path, in update_free_space_extent_count()
479 extent_count > block_group->bitmap_high_thresh) { in update_free_space_extent_count()
480 ret = convert_free_space_to_bitmaps(trans, block_group, path); in update_free_space_extent_count()
482 extent_count < block_group->bitmap_low_thresh) { in update_free_space_extent_count()
483 ret = convert_free_space_to_extents(trans, block_group, path); in update_free_space_extent_count()
490 int free_space_test_bit(struct btrfs_block_group_cache *block_group, in free_space_test_bit() argument
508 block_group->fs_info->sectorsize); in free_space_test_bit()
512 static void free_space_set_bits(struct btrfs_block_group_cache *block_group, in free_space_set_bits() argument
516 struct btrfs_fs_info *fs_info = block_group->fs_info; in free_space_set_bits()
580 struct btrfs_block_group_cache *block_group, in modify_free_space_bitmap() argument
584 struct btrfs_root *root = block_group->fs_info->free_space_root; in modify_free_space_bitmap()
596 if (start > block_group->key.objectid) { in modify_free_space_bitmap()
597 u64 prev_block = start - block_group->fs_info->sectorsize; in modify_free_space_bitmap()
607 prev_bit = free_space_test_bit(block_group, path, prev_block); in modify_free_space_bitmap()
635 free_space_set_bits(block_group, path, &cur_start, &cur_size, in modify_free_space_bitmap()
648 if (end < block_group->key.objectid + block_group->key.offset) { in modify_free_space_bitmap()
657 next_bit = free_space_test_bit(block_group, path, end); in modify_free_space_bitmap()
685 ret = update_free_space_extent_count(trans, block_group, path, in modify_free_space_bitmap()
693 struct btrfs_block_group_cache *block_group, in remove_free_space_extent() argument
771 ret = update_free_space_extent_count(trans, block_group, path, in remove_free_space_extent()
779 struct btrfs_block_group_cache *block_group, in __remove_from_free_space_tree() argument
786 if (block_group->needs_free_space) { in __remove_from_free_space_tree()
787 ret = __add_block_group_free_space(trans, block_group, path); in __remove_from_free_space_tree()
792 info = search_free_space_info(NULL, trans->fs_info, block_group, path, in __remove_from_free_space_tree()
800 return modify_free_space_bitmap(trans, block_group, path, in __remove_from_free_space_tree()
803 return remove_free_space_extent(trans, block_group, path, in __remove_from_free_space_tree()
811 struct btrfs_block_group_cache *block_group; in remove_from_free_space_tree() local
824 block_group = btrfs_lookup_block_group(trans->fs_info, start); in remove_from_free_space_tree()
825 if (!block_group) { in remove_from_free_space_tree()
831 mutex_lock(&block_group->free_space_lock); in remove_from_free_space_tree()
832 ret = __remove_from_free_space_tree(trans, block_group, path, start, in remove_from_free_space_tree()
834 mutex_unlock(&block_group->free_space_lock); in remove_from_free_space_tree()
836 btrfs_put_block_group(block_group); in remove_from_free_space_tree()
845 struct btrfs_block_group_cache *block_group, in add_free_space_extent() argument
879 if (start == block_group->key.objectid) in add_free_space_extent()
899 ASSERT(found_start >= block_group->key.objectid && in add_free_space_extent()
900 found_end > block_group->key.objectid); in add_free_space_extent()
919 if (end == block_group->key.objectid + block_group->key.offset) in add_free_space_extent()
939 ASSERT(found_start >= block_group->key.objectid && in add_free_space_extent()
940 found_end > block_group->key.objectid); in add_free_space_extent()
964 ret = update_free_space_extent_count(trans, block_group, path, in add_free_space_extent()
972 struct btrfs_block_group_cache *block_group, in __add_to_free_space_tree() argument
980 if (block_group->needs_free_space) { in __add_to_free_space_tree()
981 ret = __add_block_group_free_space(trans, block_group, path); in __add_to_free_space_tree()
986 info = search_free_space_info(NULL, fs_info, block_group, path, 0); in __add_to_free_space_tree()
993 return modify_free_space_bitmap(trans, block_group, path, in __add_to_free_space_tree()
996 return add_free_space_extent(trans, block_group, path, start, in __add_to_free_space_tree()
1004 struct btrfs_block_group_cache *block_group; in add_to_free_space_tree() local
1017 block_group = btrfs_lookup_block_group(trans->fs_info, start); in add_to_free_space_tree()
1018 if (!block_group) { in add_to_free_space_tree()
1024 mutex_lock(&block_group->free_space_lock); in add_to_free_space_tree()
1025 ret = __add_to_free_space_tree(trans, block_group, path, start, size); in add_to_free_space_tree()
1026 mutex_unlock(&block_group->free_space_lock); in add_to_free_space_tree()
1028 btrfs_put_block_group(block_group); in add_to_free_space_tree()
1042 struct btrfs_block_group_cache *block_group) in populate_free_space_tree() argument
1061 ret = add_new_free_space_info(trans, block_group, path2); in populate_free_space_tree()
1065 mutex_lock(&block_group->free_space_lock); in populate_free_space_tree()
1074 key.objectid = block_group->key.objectid; in populate_free_space_tree()
1083 start = block_group->key.objectid; in populate_free_space_tree()
1084 end = block_group->key.objectid + block_group->key.offset; in populate_free_space_tree()
1095 block_group, in populate_free_space_tree()
1108 if (key.objectid != block_group->key.objectid) in populate_free_space_tree()
1119 ret = __add_to_free_space_tree(trans, block_group, path2, in populate_free_space_tree()
1127 mutex_unlock(&block_group->free_space_lock); in populate_free_space_tree()
1139 struct btrfs_block_group_cache *block_group; in btrfs_create_free_space_tree() local
1158 block_group = rb_entry(node, struct btrfs_block_group_cache, in btrfs_create_free_space_tree()
1160 ret = populate_free_space_tree(trans, block_group); in btrfs_create_free_space_tree()
1264 struct btrfs_block_group_cache *block_group, in __add_block_group_free_space() argument
1269 block_group->needs_free_space = 0; in __add_block_group_free_space()
1271 ret = add_new_free_space_info(trans, block_group, path); in __add_block_group_free_space()
1275 return __add_to_free_space_tree(trans, block_group, path, in __add_block_group_free_space()
1276 block_group->key.objectid, in __add_block_group_free_space()
1277 block_group->key.offset); in __add_block_group_free_space()
1281 struct btrfs_block_group_cache *block_group) in add_block_group_free_space() argument
1290 mutex_lock(&block_group->free_space_lock); in add_block_group_free_space()
1291 if (!block_group->needs_free_space) in add_block_group_free_space()
1300 ret = __add_block_group_free_space(trans, block_group, path); in add_block_group_free_space()
1304 mutex_unlock(&block_group->free_space_lock); in add_block_group_free_space()
1311 struct btrfs_block_group_cache *block_group) in remove_block_group_free_space() argument
1324 if (block_group->needs_free_space) { in remove_block_group_free_space()
1335 start = block_group->key.objectid; in remove_block_group_free_space()
1336 end = block_group->key.objectid + block_group->key.offset; in remove_block_group_free_space()
1354 ASSERT(found_key.objectid == block_group->key.objectid); in remove_block_group_free_space()
1355 ASSERT(found_key.offset == block_group->key.offset); in remove_block_group_free_space()
1390 struct btrfs_block_group_cache *block_group; in load_free_space_bitmaps() local
1402 block_group = caching_ctl->block_group; in load_free_space_bitmaps()
1403 fs_info = block_group->fs_info; in load_free_space_bitmaps()
1406 end = block_group->key.objectid + block_group->key.offset; in load_free_space_bitmaps()
1427 bit = free_space_test_bit(block_group, path, offset); in load_free_space_bitmaps()
1431 total_found += add_new_free_space(block_group, in load_free_space_bitmaps()
1445 total_found += add_new_free_space(block_group, extent_start, in load_free_space_bitmaps()
1453 block_group->key.objectid, extent_count, in load_free_space_bitmaps()
1471 struct btrfs_block_group_cache *block_group; in load_free_space_extents() local
1480 block_group = caching_ctl->block_group; in load_free_space_extents()
1481 fs_info = block_group->fs_info; in load_free_space_extents()
1484 end = block_group->key.objectid + block_group->key.offset; in load_free_space_extents()
1503 total_found += add_new_free_space(block_group, key.objectid, in load_free_space_extents()
1515 block_group->key.objectid, extent_count, in load_free_space_extents()
1531 struct btrfs_block_group_cache *block_group; in load_free_space_tree() local
1538 block_group = caching_ctl->block_group; in load_free_space_tree()
1539 fs_info = block_group->fs_info; in load_free_space_tree()
1553 info = search_free_space_info(NULL, fs_info, block_group, path, 0); in load_free_space_tree()