Lines Matching refs:cluster

912 	struct btrfs_free_cluster *cluster = NULL;  in write_cache_extent_entries()  local
919 cluster = list_entry(block_group->cluster_list.next, in write_cache_extent_entries()
924 if (!node && cluster) { in write_cache_extent_entries()
925 cluster_locked = cluster; in write_cache_extent_entries()
927 node = rb_first(&cluster->root); in write_cache_extent_entries()
928 cluster = NULL; in write_cache_extent_entries()
948 if (!node && cluster) { in write_cache_extent_entries()
949 node = rb_first(&cluster->root); in write_cache_extent_entries()
950 cluster_locked = cluster; in write_cache_extent_entries()
952 cluster = NULL; in write_cache_extent_entries()
2020 struct btrfs_free_cluster *cluster; in insert_into_bitmap() local
2024 cluster = list_entry(block_group->cluster_list.next, in insert_into_bitmap()
2027 spin_lock(&cluster->lock); in insert_into_bitmap()
2028 node = rb_first(&cluster->root); in insert_into_bitmap()
2030 spin_unlock(&cluster->lock); in insert_into_bitmap()
2036 spin_unlock(&cluster->lock); in insert_into_bitmap()
2046 spin_unlock(&cluster->lock); in insert_into_bitmap()
2477 struct btrfs_free_cluster *cluster) in __btrfs_return_cluster_to_free_space() argument
2483 spin_lock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2484 if (cluster->block_group != block_group) in __btrfs_return_cluster_to_free_space()
2487 cluster->block_group = NULL; in __btrfs_return_cluster_to_free_space()
2488 cluster->window_start = 0; in __btrfs_return_cluster_to_free_space()
2489 list_del_init(&cluster->block_group_list); in __btrfs_return_cluster_to_free_space()
2491 node = rb_first(&cluster->root); in __btrfs_return_cluster_to_free_space()
2497 rb_erase(&entry->offset_index, &cluster->root); in __btrfs_return_cluster_to_free_space()
2508 cluster->root = RB_ROOT; in __btrfs_return_cluster_to_free_space()
2511 spin_unlock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2545 struct btrfs_free_cluster *cluster; in btrfs_remove_free_space_cache() local
2551 cluster = list_entry(head, struct btrfs_free_cluster, in btrfs_remove_free_space_cache()
2554 WARN_ON(cluster->block_group != block_group); in btrfs_remove_free_space_cache()
2555 __btrfs_return_cluster_to_free_space(block_group, cluster); in btrfs_remove_free_space_cache()
2618 struct btrfs_free_cluster *cluster) in btrfs_return_cluster_to_free_space() argument
2624 spin_lock(&cluster->lock); in btrfs_return_cluster_to_free_space()
2626 block_group = cluster->block_group; in btrfs_return_cluster_to_free_space()
2628 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
2631 } else if (cluster->block_group != block_group) { in btrfs_return_cluster_to_free_space()
2633 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
2637 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
2643 ret = __btrfs_return_cluster_to_free_space(block_group, cluster); in btrfs_return_cluster_to_free_space()
2652 struct btrfs_free_cluster *cluster, in btrfs_alloc_from_bitmap() argument
2659 u64 search_start = cluster->window_start; in btrfs_alloc_from_bitmap()
2685 struct btrfs_free_cluster *cluster, u64 bytes, in btrfs_alloc_from_cluster() argument
2693 spin_lock(&cluster->lock); in btrfs_alloc_from_cluster()
2694 if (bytes > cluster->max_size) in btrfs_alloc_from_cluster()
2697 if (cluster->block_group != block_group) in btrfs_alloc_from_cluster()
2700 node = rb_first(&cluster->root); in btrfs_alloc_from_cluster()
2721 cluster, entry, bytes, in btrfs_alloc_from_cluster()
2722 cluster->window_start, in btrfs_alloc_from_cluster()
2732 cluster->window_start += bytes; in btrfs_alloc_from_cluster()
2741 rb_erase(&entry->offset_index, &cluster->root); in btrfs_alloc_from_cluster()
2745 spin_unlock(&cluster->lock); in btrfs_alloc_from_cluster()
2770 struct btrfs_free_cluster *cluster, in btrfs_bitmap_cluster() argument
2806 cluster->max_size = 0; in btrfs_bitmap_cluster()
2811 if (cluster->max_size < found_bits * ctl->unit) in btrfs_bitmap_cluster()
2812 cluster->max_size = found_bits * ctl->unit; in btrfs_bitmap_cluster()
2814 if (total_found < want_bits || cluster->max_size < cont1_bytes) { in btrfs_bitmap_cluster()
2819 cluster->window_start = start * ctl->unit + entry->offset; in btrfs_bitmap_cluster()
2821 ret = tree_insert_offset(&cluster->root, entry->offset, in btrfs_bitmap_cluster()
2825 trace_btrfs_setup_cluster(block_group, cluster, in btrfs_bitmap_cluster()
2837 struct btrfs_free_cluster *cluster, in setup_cluster_no_bitmap() argument
2894 cluster->window_start = first->offset; in setup_cluster_no_bitmap()
2911 ret = tree_insert_offset(&cluster->root, entry->offset, in setup_cluster_no_bitmap()
2917 cluster->max_size = max_extent; in setup_cluster_no_bitmap()
2918 trace_btrfs_setup_cluster(block_group, cluster, total_size, 0); in setup_cluster_no_bitmap()
2928 struct btrfs_free_cluster *cluster, in setup_cluster_bitmap() argument
2954 ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset, in setup_cluster_bitmap()
2977 struct btrfs_free_cluster *cluster, in btrfs_find_space_cluster() argument
3014 spin_lock(&cluster->lock); in btrfs_find_space_cluster()
3017 if (cluster->block_group) { in btrfs_find_space_cluster()
3025 ret = setup_cluster_no_bitmap(block_group, cluster, &bitmaps, offset, in btrfs_find_space_cluster()
3029 ret = setup_cluster_bitmap(block_group, cluster, &bitmaps, in btrfs_find_space_cluster()
3039 list_add_tail(&cluster->block_group_list, in btrfs_find_space_cluster()
3041 cluster->block_group = block_group; in btrfs_find_space_cluster()
3046 spin_unlock(&cluster->lock); in btrfs_find_space_cluster()
3055 void btrfs_init_free_cluster(struct btrfs_free_cluster *cluster) in btrfs_init_free_cluster() argument
3057 spin_lock_init(&cluster->lock); in btrfs_init_free_cluster()
3058 spin_lock_init(&cluster->refill_lock); in btrfs_init_free_cluster()
3059 cluster->root = RB_ROOT; in btrfs_init_free_cluster()
3060 cluster->max_size = 0; in btrfs_init_free_cluster()
3061 INIT_LIST_HEAD(&cluster->block_group_list); in btrfs_init_free_cluster()
3062 cluster->block_group = NULL; in btrfs_init_free_cluster()