diff options
author | Josef Bacik <josef@redhat.com> | 2012-01-26 15:01:11 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2012-01-26 15:01:11 -0500 |
commit | 0b4a9d248f88e6773312f262e8185f23863d984a (patch) | |
tree | bd822950b56730d6be409c98291c4f2ba19678dc /fs/btrfs | |
parent | 8bedd51b6121c4607784d75f852828d25d119c52 (diff) | |
download | linux-stable-0b4a9d248f88e6773312f262e8185f23863d984a.tar.gz linux-stable-0b4a9d248f88e6773312f262e8185f23863d984a.tar.bz2 linux-stable-0b4a9d248f88e6773312f262e8185f23863d984a.zip |
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: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/free-space-cache.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c index 6e7406932341..61447a51f645 100644 --- a/fs/btrfs/free-space-cache.c +++ b/fs/btrfs/free-space-cache.c @@ -2242,7 +2242,7 @@ u64 btrfs_alloc_from_cluster(struct btrfs_block_group_cache *block_group, if (entry->bitmap) { ret = btrfs_alloc_from_bitmap(block_group, cluster, entry, bytes, - min_start); + cluster->window_start); if (ret == 0) { node = rb_next(&entry->offset_index); if (!node) |