• Home
  • Raw
  • Download

Lines Matching refs:cache

1202 static int calculate_alloc_pointer(struct btrfs_block_group *cache,  in calculate_alloc_pointer()  argument
1205 struct btrfs_fs_info *fs_info = cache->fs_info; in calculate_alloc_pointer()
1232 key.objectid = cache->start + cache->length; in calculate_alloc_pointer()
1244 ret = btrfs_previous_extent_item(root, path, cache->start); in calculate_alloc_pointer()
1260 if (!(found_key.objectid >= cache->start && in calculate_alloc_pointer()
1261 found_key.objectid + length <= cache->start + cache->length)) { in calculate_alloc_pointer()
1265 *offset_ret = found_key.objectid + length - cache->start; in calculate_alloc_pointer()
1273 int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new) in btrfs_load_block_group_zone_info() argument
1275 struct btrfs_fs_info *fs_info = cache->fs_info; in btrfs_load_block_group_zone_info()
1280 u64 logical = cache->start; in btrfs_load_block_group_zone_info()
1281 u64 length = cache->length; in btrfs_load_block_group_zone_info()
1313 cache->physical_map = kmemdup(map, map_lookup_size(map->num_stripes), GFP_NOFS); in btrfs_load_block_group_zone_info()
1314 if (!cache->physical_map) { in btrfs_load_block_group_zone_info()
1439 set_bit(BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE, &cache->runtime_flags); in btrfs_load_block_group_zone_info()
1443 cache->zone_capacity = cache->length; in btrfs_load_block_group_zone_info()
1444 ret = calculate_alloc_pointer(cache, &last_alloc, new); in btrfs_load_block_group_zone_info()
1448 cache->start); in btrfs_load_block_group_zone_info()
1451 cache->alloc_offset = last_alloc; in btrfs_load_block_group_zone_info()
1452 set_bit(BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE, &cache->runtime_flags); in btrfs_load_block_group_zone_info()
1466 cache->alloc_offset = alloc_offsets[0]; in btrfs_load_block_group_zone_info()
1467 cache->zone_capacity = caps[0]; in btrfs_load_block_group_zone_info()
1469 set_bit(BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE, &cache->runtime_flags); in btrfs_load_block_group_zone_info()
1498 if (!btrfs_zone_activate(cache)) { in btrfs_load_block_group_zone_info()
1505 &cache->runtime_flags); in btrfs_load_block_group_zone_info()
1507 cache->alloc_offset = alloc_offsets[0]; in btrfs_load_block_group_zone_info()
1508 cache->zone_capacity = min(caps[0], caps[1]); in btrfs_load_block_group_zone_info()
1524 if (cache->alloc_offset > fs_info->zone_size) { in btrfs_load_block_group_zone_info()
1527 cache->alloc_offset, cache->start); in btrfs_load_block_group_zone_info()
1531 if (cache->alloc_offset > cache->zone_capacity) { in btrfs_load_block_group_zone_info()
1534 cache->alloc_offset, cache->zone_capacity, in btrfs_load_block_group_zone_info()
1535 cache->start); in btrfs_load_block_group_zone_info()
1540 if (!ret && num_conventional && last_alloc > cache->alloc_offset) { in btrfs_load_block_group_zone_info()
1543 logical, last_alloc, cache->alloc_offset); in btrfs_load_block_group_zone_info()
1548 cache->meta_write_pointer = cache->alloc_offset + cache->start; in btrfs_load_block_group_zone_info()
1549 if (test_bit(BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE, &cache->runtime_flags)) { in btrfs_load_block_group_zone_info()
1550 btrfs_get_block_group(cache); in btrfs_load_block_group_zone_info()
1552 list_add_tail(&cache->active_bg_list, in btrfs_load_block_group_zone_info()
1557 kfree(cache->physical_map); in btrfs_load_block_group_zone_info()
1558 cache->physical_map = NULL; in btrfs_load_block_group_zone_info()
1569 void btrfs_calc_zone_unusable(struct btrfs_block_group *cache) in btrfs_calc_zone_unusable() argument
1573 if (!btrfs_is_zoned(cache->fs_info)) in btrfs_calc_zone_unusable()
1576 WARN_ON(cache->bytes_super != 0); in btrfs_calc_zone_unusable()
1577 unusable = (cache->alloc_offset - cache->used) + in btrfs_calc_zone_unusable()
1578 (cache->length - cache->zone_capacity); in btrfs_calc_zone_unusable()
1579 free = cache->zone_capacity - cache->alloc_offset; in btrfs_calc_zone_unusable()
1582 cache->cached = BTRFS_CACHE_FINISHED; in btrfs_calc_zone_unusable()
1583 cache->free_space_ctl->free_space = free; in btrfs_calc_zone_unusable()
1584 cache->zone_unusable = unusable; in btrfs_calc_zone_unusable()
1626 struct btrfs_block_group *cache; in btrfs_use_zone_append() local
1646 cache = btrfs_lookup_block_group(fs_info, start); in btrfs_use_zone_append()
1647 ASSERT(cache); in btrfs_use_zone_append()
1648 if (!cache) in btrfs_use_zone_append()
1651 ret = !!test_bit(BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE, &cache->runtime_flags); in btrfs_use_zone_append()
1652 btrfs_put_block_group(cache); in btrfs_use_zone_append()
1727 struct btrfs_block_group *cache; in btrfs_check_meta_write_pointer() local
1733 cache = btrfs_lookup_block_group(fs_info, eb->start); in btrfs_check_meta_write_pointer()
1734 if (!cache) in btrfs_check_meta_write_pointer()
1737 if (cache->meta_write_pointer != eb->start) { in btrfs_check_meta_write_pointer()
1738 btrfs_put_block_group(cache); in btrfs_check_meta_write_pointer()
1739 cache = NULL; in btrfs_check_meta_write_pointer()
1742 cache->meta_write_pointer = eb->start + eb->len; in btrfs_check_meta_write_pointer()
1745 *cache_ret = cache; in btrfs_check_meta_write_pointer()
1750 void btrfs_revert_meta_write_pointer(struct btrfs_block_group *cache, in btrfs_revert_meta_write_pointer() argument
1753 if (!btrfs_is_zoned(eb->fs_info) || !cache) in btrfs_revert_meta_write_pointer()
1756 ASSERT(cache->meta_write_pointer == eb->start + eb->len); in btrfs_revert_meta_write_pointer()
1757 cache->meta_write_pointer = eb->start; in btrfs_revert_meta_write_pointer()