Lines Matching refs:info
35 struct btrfs_free_space *info);
37 struct btrfs_free_space *info);
1454 struct btrfs_free_space *info; in tree_insert_offset() local
1458 info = rb_entry(parent, struct btrfs_free_space, offset_index); in tree_insert_offset()
1460 if (offset < info->offset) { in tree_insert_offset()
1462 } else if (offset > info->offset) { in tree_insert_offset()
1479 if (info->bitmap) { in tree_insert_offset()
1485 if (!info->bitmap) { in tree_insert_offset()
1625 struct btrfs_free_space *info) in __unlink_free_space() argument
1627 rb_erase(&info->offset_index, &ctl->free_space_offset); in __unlink_free_space()
1632 struct btrfs_free_space *info) in unlink_free_space() argument
1634 __unlink_free_space(ctl, info); in unlink_free_space()
1635 ctl->free_space -= info->bytes; in unlink_free_space()
1639 struct btrfs_free_space *info) in link_free_space() argument
1643 ASSERT(info->bytes || info->bitmap); in link_free_space()
1644 ret = tree_insert_offset(&ctl->free_space_offset, info->offset, in link_free_space()
1645 &info->offset_index, (info->bitmap != NULL)); in link_free_space()
1649 ctl->free_space += info->bytes; in link_free_space()
1702 struct btrfs_free_space *info, in __bitmap_clear_bits() argument
1707 start = offset_to_bit(info->offset, ctl->unit, offset); in __bitmap_clear_bits()
1711 bitmap_clear(info->bitmap, start, count); in __bitmap_clear_bits()
1713 info->bytes -= bytes; in __bitmap_clear_bits()
1714 if (info->max_extent_size > ctl->unit) in __bitmap_clear_bits()
1715 info->max_extent_size = 0; in __bitmap_clear_bits()
1719 struct btrfs_free_space *info, u64 offset, in bitmap_clear_bits() argument
1722 __bitmap_clear_bits(ctl, info, offset, bytes); in bitmap_clear_bits()
1727 struct btrfs_free_space *info, u64 offset, in bitmap_set_bits() argument
1732 start = offset_to_bit(info->offset, ctl->unit, offset); in bitmap_set_bits()
1736 bitmap_set(info->bitmap, start, count); in bitmap_set_bits()
1738 info->bytes += bytes; in bitmap_set_bits()
1876 struct btrfs_free_space *info, u64 offset) in add_new_bitmap() argument
1878 info->offset = offset_to_bitmap(ctl, offset); in add_new_bitmap()
1879 info->bytes = 0; in add_new_bitmap()
1880 INIT_LIST_HEAD(&info->list); in add_new_bitmap()
1881 link_free_space(ctl, info); in add_new_bitmap()
1975 struct btrfs_free_space *info, u64 offset, in add_bytes_to_bitmap() argument
1981 end = info->offset + (u64)(BITS_PER_BITMAP * ctl->unit); in add_bytes_to_bitmap()
1985 bitmap_set_bits(ctl, info, offset, bytes_to_set); in add_bytes_to_bitmap()
1991 info->max_extent_size = 0; in add_bytes_to_bitmap()
1998 struct btrfs_free_space *info) in use_bitmap() argument
2021 if (info->bytes <= fs_info->sectorsize * 4) { in use_bitmap()
2049 struct btrfs_free_space *info) in insert_into_bitmap() argument
2057 bytes = info->bytes; in insert_into_bitmap()
2058 offset = info->offset; in insert_into_bitmap()
2060 if (!ctl->op->use_bitmap(ctl, info)) in insert_into_bitmap()
2125 if (info && info->bitmap) { in insert_into_bitmap()
2126 add_new_bitmap(ctl, info, offset); in insert_into_bitmap()
2128 info = NULL; in insert_into_bitmap()
2134 if (!info) { in insert_into_bitmap()
2135 info = kmem_cache_zalloc(btrfs_free_space_cachep, in insert_into_bitmap()
2137 if (!info) { in insert_into_bitmap()
2145 info->bitmap = kmem_cache_zalloc(btrfs_free_space_bitmap_cachep, in insert_into_bitmap()
2148 if (!info->bitmap) { in insert_into_bitmap()
2156 if (info) { in insert_into_bitmap()
2157 if (info->bitmap) in insert_into_bitmap()
2159 info->bitmap); in insert_into_bitmap()
2160 kmem_cache_free(btrfs_free_space_cachep, info); in insert_into_bitmap()
2167 struct btrfs_free_space *info, bool update_stat) in try_merge_free_space() argument
2172 u64 offset = info->offset; in try_merge_free_space()
2173 u64 bytes = info->bytes; in try_merge_free_space()
2192 info->bytes += right_info->bytes; in try_merge_free_space()
2203 info->offset = left_info->offset; in try_merge_free_space()
2204 info->bytes += left_info->bytes; in try_merge_free_space()
2213 struct btrfs_free_space *info, in steal_from_bitmap_to_end() argument
2219 const u64 end = info->offset + info->bytes; in steal_from_bitmap_to_end()
2232 info->bytes += bytes; in steal_from_bitmap_to_end()
2246 struct btrfs_free_space *info, in steal_from_bitmap_to_front() argument
2256 bitmap_offset = offset_to_bitmap(ctl, info->offset); in steal_from_bitmap_to_front()
2258 if (bitmap_offset == info->offset) { in steal_from_bitmap_to_front()
2259 if (info->offset == 0) in steal_from_bitmap_to_front()
2261 bitmap_offset = offset_to_bitmap(ctl, info->offset - 1); in steal_from_bitmap_to_front()
2268 i = offset_to_bit(bitmap->offset, ctl->unit, info->offset) - 1; in steal_from_bitmap_to_front()
2284 info->offset -= bytes; in steal_from_bitmap_to_front()
2285 info->bytes += bytes; in steal_from_bitmap_to_front()
2288 bitmap_clear_bits(ctl, bitmap, info->offset, bytes); in steal_from_bitmap_to_front()
2290 __bitmap_clear_bits(ctl, bitmap, info->offset, bytes); in steal_from_bitmap_to_front()
2310 struct btrfs_free_space *info, in steal_from_bitmap() argument
2317 ASSERT(!info->bitmap); in steal_from_bitmap()
2318 ASSERT(RB_EMPTY_NODE(&info->offset_index)); in steal_from_bitmap()
2324 stole_end = steal_from_bitmap_to_end(ctl, info, update_stat); in steal_from_bitmap()
2326 stole_front = steal_from_bitmap_to_front(ctl, info, in steal_from_bitmap()
2330 try_merge_free_space(ctl, info, update_stat); in steal_from_bitmap()
2338 struct btrfs_free_space *info; in __btrfs_add_free_space() local
2341 info = kmem_cache_zalloc(btrfs_free_space_cachep, GFP_NOFS); in __btrfs_add_free_space()
2342 if (!info) in __btrfs_add_free_space()
2345 info->offset = offset; in __btrfs_add_free_space()
2346 info->bytes = bytes; in __btrfs_add_free_space()
2347 RB_CLEAR_NODE(&info->offset_index); in __btrfs_add_free_space()
2351 if (try_merge_free_space(ctl, info, true)) in __btrfs_add_free_space()
2359 ret = insert_into_bitmap(ctl, info); in __btrfs_add_free_space()
2373 steal_from_bitmap(ctl, info, true); in __btrfs_add_free_space()
2375 ret = link_free_space(ctl, info); in __btrfs_add_free_space()
2377 kmem_cache_free(btrfs_free_space_cachep, info); in __btrfs_add_free_space()
2401 struct btrfs_free_space *info; in btrfs_remove_free_space() local
2412 info = tree_search_offset(ctl, offset, 0, 0); in btrfs_remove_free_space()
2413 if (!info) { in btrfs_remove_free_space()
2418 info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in btrfs_remove_free_space()
2420 if (!info) { in btrfs_remove_free_space()
2432 if (!info->bitmap) { in btrfs_remove_free_space()
2433 unlink_free_space(ctl, info); in btrfs_remove_free_space()
2434 if (offset == info->offset) { in btrfs_remove_free_space()
2435 u64 to_free = min(bytes, info->bytes); in btrfs_remove_free_space()
2437 info->bytes -= to_free; in btrfs_remove_free_space()
2438 info->offset += to_free; in btrfs_remove_free_space()
2439 if (info->bytes) { in btrfs_remove_free_space()
2440 ret = link_free_space(ctl, info); in btrfs_remove_free_space()
2443 kmem_cache_free(btrfs_free_space_cachep, info); in btrfs_remove_free_space()
2450 u64 old_end = info->bytes + info->offset; in btrfs_remove_free_space()
2452 info->bytes = offset - info->offset; in btrfs_remove_free_space()
2453 ret = link_free_space(ctl, info); in btrfs_remove_free_space()
2476 ret = remove_from_bitmap(ctl, info, &offset, &bytes); in btrfs_remove_free_space()
2492 struct btrfs_free_space *info; in btrfs_dump_free_space() local
2498 info = rb_entry(n, struct btrfs_free_space, offset_index); in btrfs_dump_free_space()
2499 if (info->bytes >= bytes && !block_group->ro) in btrfs_dump_free_space()
2502 info->offset, info->bytes, in btrfs_dump_free_space()
2503 (info->bitmap) ? "yes" : "no"); in btrfs_dump_free_space()
2584 struct btrfs_free_space *info; in __btrfs_remove_free_space_cache_locked() local
2588 info = rb_entry(node, struct btrfs_free_space, offset_index); in __btrfs_remove_free_space_cache_locked()
2589 if (!info->bitmap) { in __btrfs_remove_free_space_cache_locked()
2590 unlink_free_space(ctl, info); in __btrfs_remove_free_space_cache_locked()
2591 kmem_cache_free(btrfs_free_space_cachep, info); in __btrfs_remove_free_space_cache_locked()
2593 free_bitmap(ctl, info); in __btrfs_remove_free_space_cache_locked()
3603 struct btrfs_free_space *info = NULL, *bitmap_info; in test_add_free_space_entry() local
3609 if (!info) { in test_add_free_space_entry()
3610 info = kmem_cache_zalloc(btrfs_free_space_cachep, GFP_NOFS); in test_add_free_space_entry()
3611 if (!info) in test_add_free_space_entry()
3617 info->offset = offset; in test_add_free_space_entry()
3618 info->bytes = bytes; in test_add_free_space_entry()
3619 info->max_extent_size = 0; in test_add_free_space_entry()
3620 ret = link_free_space(ctl, info); in test_add_free_space_entry()
3623 kmem_cache_free(btrfs_free_space_cachep, info); in test_add_free_space_entry()
3630 kmem_cache_free(btrfs_free_space_cachep, info); in test_add_free_space_entry()
3639 info->bitmap = map; in test_add_free_space_entry()
3641 add_new_bitmap(ctl, info, offset); in test_add_free_space_entry()
3642 bitmap_info = info; in test_add_free_space_entry()
3643 info = NULL; in test_add_free_space_entry()
3655 if (info) in test_add_free_space_entry()
3656 kmem_cache_free(btrfs_free_space_cachep, info); in test_add_free_space_entry()
3671 struct btrfs_free_space *info; in test_check_exists() local
3675 info = tree_search_offset(ctl, offset, 0, 0); in test_check_exists()
3676 if (!info) { in test_check_exists()
3677 info = tree_search_offset(ctl, offset_to_bitmap(ctl, offset), in test_check_exists()
3679 if (!info) in test_check_exists()
3684 if (info->bitmap) { in test_check_exists()
3691 ret = search_bitmap(ctl, info, &bit_off, &bit_bytes, false); in test_check_exists()
3703 n = rb_prev(&info->offset_index); in test_check_exists()
3713 info = tmp; in test_check_exists()
3717 n = rb_next(&info->offset_index); in test_check_exists()
3727 info = tmp; in test_check_exists()
3735 if (info->offset == offset) { in test_check_exists()
3740 if (offset > info->offset && offset < info->offset + info->bytes) in test_check_exists()