Lines Matching refs:cluster

1078 	struct btrfs_free_cluster *cluster = NULL;  in write_cache_extent_entries()  local
1085 cluster = list_entry(block_group->cluster_list.next, in write_cache_extent_entries()
1090 if (!node && cluster) { in write_cache_extent_entries()
1091 cluster_locked = cluster; in write_cache_extent_entries()
1093 node = rb_first(&cluster->root); in write_cache_extent_entries()
1094 cluster = NULL; in write_cache_extent_entries()
1114 if (!node && cluster) { in write_cache_extent_entries()
1115 node = rb_first(&cluster->root); in write_cache_extent_entries()
1116 cluster_locked = cluster; in write_cache_extent_entries()
1118 cluster = NULL; in write_cache_extent_entries()
2319 struct btrfs_free_cluster *cluster; in insert_into_bitmap() local
2323 cluster = list_entry(block_group->cluster_list.next, in insert_into_bitmap()
2326 spin_lock(&cluster->lock); in insert_into_bitmap()
2327 node = rb_first(&cluster->root); in insert_into_bitmap()
2329 spin_unlock(&cluster->lock); in insert_into_bitmap()
2335 spin_unlock(&cluster->lock); in insert_into_bitmap()
2345 spin_unlock(&cluster->lock); in insert_into_bitmap()
2954 struct btrfs_free_cluster *cluster) in __btrfs_return_cluster_to_free_space() argument
2960 spin_lock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2961 if (cluster->block_group != block_group) { in __btrfs_return_cluster_to_free_space()
2962 spin_unlock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2966 cluster->block_group = NULL; in __btrfs_return_cluster_to_free_space()
2967 cluster->window_start = 0; in __btrfs_return_cluster_to_free_space()
2968 list_del_init(&cluster->block_group_list); in __btrfs_return_cluster_to_free_space()
2970 node = rb_first(&cluster->root); in __btrfs_return_cluster_to_free_space()
2976 rb_erase(&entry->offset_index, &cluster->root); in __btrfs_return_cluster_to_free_space()
3003 cluster->root = RB_ROOT; in __btrfs_return_cluster_to_free_space()
3004 spin_unlock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
3011 struct btrfs_free_cluster *cluster; in btrfs_remove_free_space_cache() local
3017 cluster = list_entry(head, struct btrfs_free_cluster, in btrfs_remove_free_space_cache()
3020 WARN_ON(cluster->block_group != block_group); in btrfs_remove_free_space_cache()
3021 __btrfs_return_cluster_to_free_space(block_group, cluster); in btrfs_remove_free_space_cache()
3133 struct btrfs_free_cluster *cluster) in btrfs_return_cluster_to_free_space() argument
3138 spin_lock(&cluster->lock); in btrfs_return_cluster_to_free_space()
3140 block_group = cluster->block_group; in btrfs_return_cluster_to_free_space()
3142 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
3145 } else if (cluster->block_group != block_group) { in btrfs_return_cluster_to_free_space()
3147 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
3151 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
3157 __btrfs_return_cluster_to_free_space(block_group, cluster); in btrfs_return_cluster_to_free_space()
3167 struct btrfs_free_cluster *cluster, in btrfs_alloc_from_bitmap() argument
3174 u64 search_start = cluster->window_start; in btrfs_alloc_from_bitmap()
3200 struct btrfs_free_cluster *cluster, u64 bytes, in btrfs_alloc_from_cluster() argument
3212 spin_lock(&cluster->lock); in btrfs_alloc_from_cluster()
3213 if (bytes > cluster->max_size) in btrfs_alloc_from_cluster()
3216 if (cluster->block_group != block_group) in btrfs_alloc_from_cluster()
3219 node = rb_first(&cluster->root); in btrfs_alloc_from_cluster()
3241 cluster, entry, bytes, in btrfs_alloc_from_cluster()
3242 cluster->window_start, in btrfs_alloc_from_cluster()
3252 cluster->window_start += bytes; in btrfs_alloc_from_cluster()
3263 spin_unlock(&cluster->lock); in btrfs_alloc_from_cluster()
3277 spin_lock(&cluster->lock); in btrfs_alloc_from_cluster()
3279 rb_erase(&entry->offset_index, &cluster->root); in btrfs_alloc_from_cluster()
3292 spin_unlock(&cluster->lock); in btrfs_alloc_from_cluster()
3300 struct btrfs_free_cluster *cluster, in btrfs_bitmap_cluster() argument
3350 cluster->max_size = 0; in btrfs_bitmap_cluster()
3355 if (cluster->max_size < found_bits * ctl->unit) in btrfs_bitmap_cluster()
3356 cluster->max_size = found_bits * ctl->unit; in btrfs_bitmap_cluster()
3358 if (total_found < want_bits || cluster->max_size < cont1_bytes) { in btrfs_bitmap_cluster()
3363 cluster->window_start = start * ctl->unit + entry->offset; in btrfs_bitmap_cluster()
3376 ret = tree_insert_offset(&cluster->root, entry->offset, in btrfs_bitmap_cluster()
3380 trace_btrfs_setup_cluster(block_group, cluster, in btrfs_bitmap_cluster()
3392 struct btrfs_free_cluster *cluster, in setup_cluster_no_bitmap() argument
3449 cluster->window_start = first->offset; in setup_cluster_no_bitmap()
3467 ret = tree_insert_offset(&cluster->root, entry->offset, in setup_cluster_no_bitmap()
3473 cluster->max_size = max_extent; in setup_cluster_no_bitmap()
3474 trace_btrfs_setup_cluster(block_group, cluster, total_size, 0); in setup_cluster_no_bitmap()
3484 struct btrfs_free_cluster *cluster, in setup_cluster_bitmap() argument
3512 ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset, in setup_cluster_bitmap()
3534 struct btrfs_free_cluster *cluster, in btrfs_find_space_cluster() argument
3573 spin_lock(&cluster->lock); in btrfs_find_space_cluster()
3576 if (cluster->block_group) { in btrfs_find_space_cluster()
3584 ret = setup_cluster_no_bitmap(block_group, cluster, &bitmaps, offset, in btrfs_find_space_cluster()
3588 ret = setup_cluster_bitmap(block_group, cluster, &bitmaps, in btrfs_find_space_cluster()
3598 list_add_tail(&cluster->block_group_list, in btrfs_find_space_cluster()
3600 cluster->block_group = block_group; in btrfs_find_space_cluster()
3605 spin_unlock(&cluster->lock); in btrfs_find_space_cluster()
3614 void btrfs_init_free_cluster(struct btrfs_free_cluster *cluster) in btrfs_init_free_cluster() argument
3616 spin_lock_init(&cluster->lock); in btrfs_init_free_cluster()
3617 spin_lock_init(&cluster->refill_lock); in btrfs_init_free_cluster()
3618 cluster->root = RB_ROOT; in btrfs_init_free_cluster()
3619 cluster->max_size = 0; in btrfs_init_free_cluster()
3620 cluster->fragmented = false; in btrfs_init_free_cluster()
3621 INIT_LIST_HEAD(&cluster->block_group_list); in btrfs_init_free_cluster()
3622 cluster->block_group = NULL; in btrfs_init_free_cluster()