Skip to content

Commit

Permalink
Btrfs: check free space in block group before searching for a cluster
Browse files Browse the repository at this point in the history
The free space cluster stuff is heavy duty, so there is no sense in going
through the entire song and dance if there isn't enough space in the block group
to begin with.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
  • Loading branch information
Josef Bacik committed Mar 21, 2011
1 parent 22a94d4 commit 7d0d2e8
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions fs/btrfs/free-space-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1999,6 +1999,16 @@ int btrfs_find_space_cluster(struct btrfs_trans_handle *trans,
min_bytes = max(bytes, (bytes + empty_size) >> 2);

spin_lock(&block_group->tree_lock);

/*
* If we know we don't have enough space to make a cluster don't even
* bother doing all the work to try and find one.
*/
if (block_group->free_space < min_bytes) {
spin_unlock(&block_group->tree_lock);
return -ENOSPC;
}

spin_lock(&cluster->lock);

/* someone already found a cluster, hooray */
Expand Down

0 comments on commit 7d0d2e8

Please sign in to comment.