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>
This commit is contained in:
@@ -2475,7 +2475,7 @@ setup_cluster_bitmap(struct btrfs_block_group_cache *block_group,
|
|||||||
}
|
}
|
||||||
|
|
||||||
list_for_each_entry(entry, bitmaps, list) {
|
list_for_each_entry(entry, bitmaps, list) {
|
||||||
if (entry->bytes < min_bytes)
|
if (entry->bytes < bytes)
|
||||||
continue;
|
continue;
|
||||||
ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset,
|
ret = btrfs_bitmap_cluster(block_group, entry, cluster, offset,
|
||||||
bytes, cont1_bytes, min_bytes);
|
bytes, cont1_bytes, min_bytes);
|
||||||
|
Reference in New Issue
Block a user