Lines Matching refs:cluster
1021 struct btrfs_free_cluster *cluster = NULL; in write_cache_extent_entries() local
1028 cluster = list_entry(block_group->cluster_list.next, in write_cache_extent_entries()
1033 if (!node && cluster) { in write_cache_extent_entries()
1034 cluster_locked = cluster; in write_cache_extent_entries()
1036 node = rb_first(&cluster->root); in write_cache_extent_entries()
1037 cluster = NULL; in write_cache_extent_entries()
1057 if (!node && cluster) { in write_cache_extent_entries()
1058 node = rb_first(&cluster->root); in write_cache_extent_entries()
1059 cluster_locked = cluster; in write_cache_extent_entries()
1061 cluster = NULL; in write_cache_extent_entries()
2176 struct btrfs_free_cluster *cluster; in insert_into_bitmap() local
2180 cluster = list_entry(block_group->cluster_list.next, in insert_into_bitmap()
2183 spin_lock(&cluster->lock); in insert_into_bitmap()
2184 node = rb_first(&cluster->root); in insert_into_bitmap()
2186 spin_unlock(&cluster->lock); in insert_into_bitmap()
2192 spin_unlock(&cluster->lock); in insert_into_bitmap()
2202 spin_unlock(&cluster->lock); in insert_into_bitmap()
2821 struct btrfs_free_cluster *cluster) in __btrfs_return_cluster_to_free_space() argument
2827 spin_lock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2828 if (cluster->block_group != block_group) { in __btrfs_return_cluster_to_free_space()
2829 spin_unlock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2833 cluster->block_group = NULL; in __btrfs_return_cluster_to_free_space()
2834 cluster->window_start = 0; in __btrfs_return_cluster_to_free_space()
2835 list_del_init(&cluster->block_group_list); in __btrfs_return_cluster_to_free_space()
2837 node = rb_first(&cluster->root); in __btrfs_return_cluster_to_free_space()
2843 rb_erase(&entry->offset_index, &cluster->root); in __btrfs_return_cluster_to_free_space()
2868 cluster->root = RB_ROOT; in __btrfs_return_cluster_to_free_space()
2869 spin_unlock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2904 struct btrfs_free_cluster *cluster; in btrfs_remove_free_space_cache() local
2910 cluster = list_entry(head, struct btrfs_free_cluster, in btrfs_remove_free_space_cache()
2913 WARN_ON(cluster->block_group != block_group); in btrfs_remove_free_space_cache()
2914 __btrfs_return_cluster_to_free_space(block_group, cluster); in btrfs_remove_free_space_cache()
3025 struct btrfs_free_cluster *cluster) in btrfs_return_cluster_to_free_space() argument
3030 spin_lock(&cluster->lock); in btrfs_return_cluster_to_free_space()
3032 block_group = cluster->block_group; in btrfs_return_cluster_to_free_space()
3034 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
3037 } else if (cluster->block_group != block_group) { in btrfs_return_cluster_to_free_space()
3039 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
3043 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
3049 __btrfs_return_cluster_to_free_space(block_group, cluster); in btrfs_return_cluster_to_free_space()
3059 struct btrfs_free_cluster *cluster, in btrfs_alloc_from_bitmap() argument
3066 u64 search_start = cluster->window_start; in btrfs_alloc_from_bitmap()
3092 struct btrfs_free_cluster *cluster, u64 bytes, in btrfs_alloc_from_cluster() argument
3104 spin_lock(&cluster->lock); in btrfs_alloc_from_cluster()
3105 if (bytes > cluster->max_size) in btrfs_alloc_from_cluster()
3108 if (cluster->block_group != block_group) in btrfs_alloc_from_cluster()
3111 node = rb_first(&cluster->root); in btrfs_alloc_from_cluster()
3133 cluster, entry, bytes, in btrfs_alloc_from_cluster()
3134 cluster->window_start, in btrfs_alloc_from_cluster()
3144 cluster->window_start += bytes; in btrfs_alloc_from_cluster()
3155 spin_unlock(&cluster->lock); in btrfs_alloc_from_cluster()
3169 spin_lock(&cluster->lock); in btrfs_alloc_from_cluster()
3171 rb_erase(&entry->offset_index, &cluster->root); in btrfs_alloc_from_cluster()
3184 spin_unlock(&cluster->lock); in btrfs_alloc_from_cluster()
3192 struct btrfs_free_cluster *cluster, in btrfs_bitmap_cluster() argument
3242 cluster->max_size = 0; in btrfs_bitmap_cluster()
3247 if (cluster->max_size < found_bits * ctl->unit) in btrfs_bitmap_cluster()
3248 cluster->max_size = found_bits * ctl->unit; in btrfs_bitmap_cluster()
3250 if (total_found < want_bits || cluster->max_size < cont1_bytes) { in btrfs_bitmap_cluster()
3255 cluster->window_start = start * ctl->unit + entry->offset; in btrfs_bitmap_cluster()
3257 ret = tree_insert_offset(&cluster->root, entry->offset, in btrfs_bitmap_cluster()
3261 trace_btrfs_setup_cluster(block_group, cluster, in btrfs_bitmap_cluster()
3273 struct btrfs_free_cluster *cluster, in setup_cluster_no_bitmap() argument
3330 cluster->window_start = first->offset; in setup_cluster_no_bitmap()
3347 ret = tree_insert_offset(&cluster->root, entry->offset, in setup_cluster_no_bitmap()
3353 cluster->max_size = max_extent; in setup_cluster_no_bitmap()
3354 trace_btrfs_setup_cluster(block_group, cluster, total_size, 0); in setup_cluster_no_bitmap()
3364 struct btrfs_free_cluster *cluster, in setup_cluster_bitmap() argument
3392 ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset, in setup_cluster_bitmap()
3414 struct btrfs_free_cluster *cluster, in btrfs_find_space_cluster() argument
3452 spin_lock(&cluster->lock); in btrfs_find_space_cluster()
3455 if (cluster->block_group) { in btrfs_find_space_cluster()
3463 ret = setup_cluster_no_bitmap(block_group, cluster, &bitmaps, offset, in btrfs_find_space_cluster()
3467 ret = setup_cluster_bitmap(block_group, cluster, &bitmaps, in btrfs_find_space_cluster()
3477 list_add_tail(&cluster->block_group_list, in btrfs_find_space_cluster()
3479 cluster->block_group = block_group; in btrfs_find_space_cluster()
3484 spin_unlock(&cluster->lock); in btrfs_find_space_cluster()
3493 void btrfs_init_free_cluster(struct btrfs_free_cluster *cluster) in btrfs_init_free_cluster() argument
3495 spin_lock_init(&cluster->lock); in btrfs_init_free_cluster()
3496 spin_lock_init(&cluster->refill_lock); in btrfs_init_free_cluster()
3497 cluster->root = RB_ROOT; in btrfs_init_free_cluster()
3498 cluster->max_size = 0; in btrfs_init_free_cluster()
3499 cluster->fragmented = false; in btrfs_init_free_cluster()
3500 INIT_LIST_HEAD(&cluster->block_group_list); in btrfs_init_free_cluster()
3501 cluster->block_group = NULL; in btrfs_init_free_cluster()