From 7e2269509d928bb77888844ac078c8333f78d14f Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Fri, 13 May 2011 11:07:12 -0400 Subject: [PATCH] --- yaml --- r: 253087 b: refs/heads/master c: cca1c81f43e26ab60c0d1090fb90992358d69bdf h: refs/heads/master i: 253085: 25c4cf1557fa9d0a1bb2aa2df0a977356407699f 253083: a5b90d92df4729f5afb4c9b9c2609bdf47575a7d 253079: 0406f6e0a8187163de4a53bdc583adc3269ff42c 253071: 61c72aba5ac026364091668deec57fe2bd7317cf 253055: 2a872998f06dbe1b5e6ca98cf6fd643a2ffd2e78 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/extent-tree.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a15da0cac512..7a5fb477d25c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 026fd317828500524cdc7e5ff9e8e7923abb2868 +refs/heads/master: cca1c81f43e26ab60c0d1090fb90992358d69bdf diff --git a/trunk/fs/btrfs/extent-tree.c b/trunk/fs/btrfs/extent-tree.c index 1ba2cc58eab5..c8c318494dee 100644 --- a/trunk/fs/btrfs/extent-tree.c +++ b/trunk/fs/btrfs/extent-tree.c @@ -5159,6 +5159,14 @@ static noinline int find_free_extent(struct btrfs_trans_handle *trans, if (unlikely(block_group->ro)) goto loop; + spin_lock(&block_group->tree_lock); + if (cached && + block_group->free_space < num_bytes + empty_size) { + spin_unlock(&block_group->tree_lock); + goto loop; + } + spin_unlock(&block_group->tree_lock); + /* * Ok we want to try and use the cluster allocator, so lets look * there, unless we are on LOOP_NO_EMPTY_SIZE, since we will