Lines Matching refs:cluster
910 struct btrfs_free_cluster *cluster = NULL; in write_cache_extent_entries() local
917 cluster = list_entry(block_group->cluster_list.next, in write_cache_extent_entries()
922 if (!node && cluster) { in write_cache_extent_entries()
923 cluster_locked = cluster; in write_cache_extent_entries()
925 node = rb_first(&cluster->root); in write_cache_extent_entries()
926 cluster = NULL; in write_cache_extent_entries()
946 if (!node && cluster) { in write_cache_extent_entries()
947 node = rb_first(&cluster->root); in write_cache_extent_entries()
948 cluster_locked = cluster; in write_cache_extent_entries()
950 cluster = NULL; in write_cache_extent_entries()
2048 struct btrfs_free_cluster *cluster; in insert_into_bitmap() local
2052 cluster = list_entry(block_group->cluster_list.next, in insert_into_bitmap()
2055 spin_lock(&cluster->lock); in insert_into_bitmap()
2056 node = rb_first(&cluster->root); in insert_into_bitmap()
2058 spin_unlock(&cluster->lock); in insert_into_bitmap()
2064 spin_unlock(&cluster->lock); in insert_into_bitmap()
2074 spin_unlock(&cluster->lock); in insert_into_bitmap()
2505 struct btrfs_free_cluster *cluster) in __btrfs_return_cluster_to_free_space() argument
2511 spin_lock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2512 if (cluster->block_group != block_group) in __btrfs_return_cluster_to_free_space()
2515 cluster->block_group = NULL; in __btrfs_return_cluster_to_free_space()
2516 cluster->window_start = 0; in __btrfs_return_cluster_to_free_space()
2517 list_del_init(&cluster->block_group_list); in __btrfs_return_cluster_to_free_space()
2519 node = rb_first(&cluster->root); in __btrfs_return_cluster_to_free_space()
2525 rb_erase(&entry->offset_index, &cluster->root); in __btrfs_return_cluster_to_free_space()
2536 cluster->root = RB_ROOT; in __btrfs_return_cluster_to_free_space()
2539 spin_unlock(&cluster->lock); in __btrfs_return_cluster_to_free_space()
2573 struct btrfs_free_cluster *cluster; in btrfs_remove_free_space_cache() local
2579 cluster = list_entry(head, struct btrfs_free_cluster, in btrfs_remove_free_space_cache()
2582 WARN_ON(cluster->block_group != block_group); in btrfs_remove_free_space_cache()
2583 __btrfs_return_cluster_to_free_space(block_group, cluster); in btrfs_remove_free_space_cache()
2646 struct btrfs_free_cluster *cluster) in btrfs_return_cluster_to_free_space() argument
2652 spin_lock(&cluster->lock); in btrfs_return_cluster_to_free_space()
2654 block_group = cluster->block_group; in btrfs_return_cluster_to_free_space()
2656 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
2659 } else if (cluster->block_group != block_group) { in btrfs_return_cluster_to_free_space()
2661 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
2665 spin_unlock(&cluster->lock); in btrfs_return_cluster_to_free_space()
2671 ret = __btrfs_return_cluster_to_free_space(block_group, cluster); in btrfs_return_cluster_to_free_space()
2680 struct btrfs_free_cluster *cluster, in btrfs_alloc_from_bitmap() argument
2687 u64 search_start = cluster->window_start; in btrfs_alloc_from_bitmap()
2713 struct btrfs_free_cluster *cluster, u64 bytes, in btrfs_alloc_from_cluster() argument
2721 spin_lock(&cluster->lock); in btrfs_alloc_from_cluster()
2722 if (bytes > cluster->max_size) in btrfs_alloc_from_cluster()
2725 if (cluster->block_group != block_group) in btrfs_alloc_from_cluster()
2728 node = rb_first(&cluster->root); in btrfs_alloc_from_cluster()
2749 cluster, entry, bytes, in btrfs_alloc_from_cluster()
2750 cluster->window_start, in btrfs_alloc_from_cluster()
2760 cluster->window_start += bytes; in btrfs_alloc_from_cluster()
2769 rb_erase(&entry->offset_index, &cluster->root); in btrfs_alloc_from_cluster()
2773 spin_unlock(&cluster->lock); in btrfs_alloc_from_cluster()
2798 struct btrfs_free_cluster *cluster, in btrfs_bitmap_cluster() argument
2848 cluster->max_size = 0; in btrfs_bitmap_cluster()
2853 if (cluster->max_size < found_bits * ctl->unit) in btrfs_bitmap_cluster()
2854 cluster->max_size = found_bits * ctl->unit; in btrfs_bitmap_cluster()
2856 if (total_found < want_bits || cluster->max_size < cont1_bytes) { in btrfs_bitmap_cluster()
2861 cluster->window_start = start * ctl->unit + entry->offset; in btrfs_bitmap_cluster()
2863 ret = tree_insert_offset(&cluster->root, entry->offset, in btrfs_bitmap_cluster()
2867 trace_btrfs_setup_cluster(block_group, cluster, in btrfs_bitmap_cluster()
2879 struct btrfs_free_cluster *cluster, in setup_cluster_no_bitmap() argument
2936 cluster->window_start = first->offset; in setup_cluster_no_bitmap()
2953 ret = tree_insert_offset(&cluster->root, entry->offset, in setup_cluster_no_bitmap()
2959 cluster->max_size = max_extent; in setup_cluster_no_bitmap()
2960 trace_btrfs_setup_cluster(block_group, cluster, total_size, 0); in setup_cluster_no_bitmap()
2970 struct btrfs_free_cluster *cluster, in setup_cluster_bitmap() argument
2998 ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset, in setup_cluster_bitmap()
3021 struct btrfs_free_cluster *cluster, in btrfs_find_space_cluster() argument
3058 spin_lock(&cluster->lock); in btrfs_find_space_cluster()
3061 if (cluster->block_group) { in btrfs_find_space_cluster()
3069 ret = setup_cluster_no_bitmap(block_group, cluster, &bitmaps, offset, in btrfs_find_space_cluster()
3073 ret = setup_cluster_bitmap(block_group, cluster, &bitmaps, in btrfs_find_space_cluster()
3083 list_add_tail(&cluster->block_group_list, in btrfs_find_space_cluster()
3085 cluster->block_group = block_group; in btrfs_find_space_cluster()
3090 spin_unlock(&cluster->lock); in btrfs_find_space_cluster()
3099 void btrfs_init_free_cluster(struct btrfs_free_cluster *cluster) in btrfs_init_free_cluster() argument
3101 spin_lock_init(&cluster->lock); in btrfs_init_free_cluster()
3102 spin_lock_init(&cluster->refill_lock); in btrfs_init_free_cluster()
3103 cluster->root = RB_ROOT; in btrfs_init_free_cluster()
3104 cluster->max_size = 0; in btrfs_init_free_cluster()
3105 cluster->fragmented = false; in btrfs_init_free_cluster()
3106 INIT_LIST_HEAD(&cluster->block_group_list); in btrfs_init_free_cluster()
3107 cluster->block_group = NULL; in btrfs_init_free_cluster()