Lines Matching refs:block_group

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