summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2012-01-26 15:01:11 -0500
committerChris Mason <chris.mason@oracle.com>2012-01-26 15:01:11 -0500
commit357b9784b79924a31ccded5d9a0c688f48cc28f2 (patch)
treeba47dcbcc40b956b30e4b27c790547cb5d3fc563 /fs
parentb1375d64c539c5b76794be759b62d3f178e67c32 (diff)
downloadlinux-357b9784b79924a31ccded5d9a0c688f48cc28f2.tar.gz
linux-357b9784b79924a31ccded5d9a0c688f48cc28f2.tar.bz2
linux-357b9784b79924a31ccded5d9a0c688f48cc28f2.zip
Btrfs: make sure a bitmap has enough bytes
We have only been checking for min_bytes available in bitmap entries, but we won't successfully setup a bitmap cluster unless it has at least bytes in the bitmap, so in the common case min_bytes is 4k and we want something like 2MB, so if there are a bunch of bitmap entries with less than 2mb's in them, we'll search all them anyway, which is suboptimal. Fix this check. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/free-space-cache.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index efe20032e4a1..6e7406932341 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -2475,7 +2475,7 @@ setup_cluster_bitmap(struct btrfs_block_group_cache *block_group,
}
list_for_each_entry(entry, bitmaps, list) {
- if (entry->bytes < min_bytes)
+ if (entry->bytes < bytes)
continue;
ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset,
bytes, cont1_bytes, min_bytes);