Commit 0b4a9d24 authored by Josef Bacik's avatar Josef Bacik Committed by Chris Mason

Btrfs: use cluster->window_start when allocating from a cluster bitmap

We specifically set window_start in the cluster struct to indicate where the
cluster starts in a bitmap, but we've been using min_start to indicate where
we're searching from.  This is usually the start of the blockgroup, so
essentially means we're constantly searching from the start of any bitmap we
find, which completely negates all the trouble we go to in order to setup a
cluster.  So start using window_start to make sure we actually use the area we
found.  Thanks,
Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 8bedd51b
...@@ -2242,7 +2242,7 @@ u64 btrfs_alloc_from_cluster(struct btrfs_block_group_cache *block_group, ...@@ -2242,7 +2242,7 @@ u64 btrfs_alloc_from_cluster(struct btrfs_block_group_cache *block_group,
if (entry->bitmap) { if (entry->bitmap) {
ret = btrfs_alloc_from_bitmap(block_group, ret = btrfs_alloc_from_bitmap(block_group,
cluster, entry, bytes, cluster, entry, bytes,
min_start); cluster->window_start);
if (ret == 0) { if (ret == 0) {
node = rb_next(&entry->offset_index); node = rb_next(&entry->offset_index);
if (!node) if (!node)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment