aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/free-space-cache.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index 0282033041e1..f631df870f64 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -1999,6 +1999,16 @@ int btrfs_find_space_cluster(struct btrfs_trans_handle *trans,
1999 min_bytes = max(bytes, (bytes + empty_size) >> 2); 1999 min_bytes = max(bytes, (bytes + empty_size) >> 2);
2000 2000
2001 spin_lock(&block_group->tree_lock); 2001 spin_lock(&block_group->tree_lock);
2002
2003 /*
2004 * If we know we don't have enough space to make a cluster don't even
2005 * bother doing all the work to try and find one.
2006 */
2007 if (block_group->free_space < min_bytes) {
2008 spin_unlock(&block_group->tree_lock);
2009 return -ENOSPC;
2010 }
2011
2002 spin_lock(&cluster->lock); 2012 spin_lock(&cluster->lock);
2003 2013
2004 /* someone already found a cluster, hooray */ 2014 /* someone already found a cluster, hooray */