Lines Matching defs:cluster

158 	struct file_extent_cluster cluster;
897 * The cluster-boundary key searched above is always written by
2724 const struct file_extent_cluster *cluster = &rc->cluster;
2733 u64 prealloc_start = cluster->start - offset;
2734 u64 prealloc_end = cluster->end - offset;
2741 * If the current cluster covers the above range, btrfs_do_readpage()
2745 * Here we have to invalidate the cache covering our cluster.
2752 BUG_ON(cluster->start != cluster->boundary[0]);
2759 for (nr = 0; nr < cluster->nr; nr++) {
2762 start = cluster->boundary[nr] - offset;
2763 if (nr + 1 < cluster->nr)
2764 end = cluster->boundary[nr + 1] - 1 - offset;
2766 end = cluster->end - offset;
2792 u64 start = rc->cluster.start - offset;
2793 u64 end = rc->cluster.end - offset;
2802 em->disk_bytenr = rc->cluster.start;
2826 static u64 get_cluster_boundary_end(const struct file_extent_cluster *cluster,
2829 /* Last extent, use cluster end directly */
2830 if (cluster_nr >= cluster->nr - 1)
2831 return cluster->end;
2834 return cluster->boundary[cluster_nr + 1] - 1;
2841 const struct file_extent_cluster *cluster = &rc->cluster;
2846 const pgoff_t last_index = (cluster->end - offset) >> PAGE_SHIFT;
2911 * Start from the cluster, as for subpage case, the cluster can start
2914 cur = max(folio_start, cluster->boundary[*cluster_nr] - offset);
2917 u64 extent_start = cluster->boundary[*cluster_nr] - offset;
2918 u64 extent_end = get_cluster_boundary_end(cluster,
2956 if (in_range(cluster->boundary[*cluster_nr] - offset,
2958 u64 boundary_start = cluster->boundary[*cluster_nr] -
2975 /* Just finished the last extent of the cluster, exit. */
2976 if (*cluster_nr >= cluster->nr)
2999 const struct file_extent_cluster *cluster = &rc->cluster;
3001 u64 cur_file_offset = cluster->start - offset;
3006 if (!cluster->nr)
3023 while (cur_file_offset < cluster->end - offset) {
3029 WARN_ON(cluster_nr != cluster->nr);
3037 struct file_extent_cluster *cluster = &rc->cluster;
3041 if (cluster->nr > 0 && extent_key->objectid != cluster->end + 1) {
3045 cluster->nr = 0;
3052 * started a cluster and if we see an extent from a different root break
3053 * cluster formation (just like the above case of non-adjacent extents).
3059 if (cluster->nr > 0 && cluster->owning_root != root->relocation_src_root) {
3065 * the cluster we need to relocate.
3067 root->relocation_src_root = cluster->owning_root;
3071 cluster->nr = 0;
3076 if (!cluster->nr) {
3077 cluster->start = extent_key->objectid;
3078 cluster->owning_root = root->relocation_src_root;
3081 BUG_ON(cluster->nr >= MAX_EXTENTS);
3082 cluster->end = extent_key->objectid + extent_key->offset - 1;
3083 cluster->boundary[cluster->nr] = extent_key->objectid;
3084 cluster->nr++;
3086 if (cluster->nr >= MAX_EXTENTS) {
3090 cluster->nr = 0;
3513 memset(&rc->cluster, 0, sizeof(rc->cluster));