aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.h
diff options
context:
space:
mode:
authorJosef Bacik <josef@redhat.com>2011-04-11 20:20:11 -0400
committerChris Mason <chris.mason@oracle.com>2011-04-16 07:10:56 -0400
commit6d74119f1a3efad9dc7f79a16c201242324b731f (patch)
treefaf541835e82e9d56c7474c04b2d785821fe61d3 /fs/btrfs/ctree.h
parent0d399205edf3a4c290e76ebb36e541593af4a1b4 (diff)
downloadkernel_samsung_smdk4412-6d74119f1a3efad9dc7f79a16c201242324b731f.zip
kernel_samsung_smdk4412-6d74119f1a3efad9dc7f79a16c201242324b731f.tar.gz
kernel_samsung_smdk4412-6d74119f1a3efad9dc7f79a16c201242324b731f.tar.bz2
Btrfs: avoid taking the chunk_mutex in do_chunk_alloc
Everytime we try to allocate disk space we try and see if we can pre-emptively allocate a chunk, but in the common case we don't allocate anything, so there is no sense in taking the chunk_mutex at all. So instead if we are allocating a chunk, mark it in the space_info so we don't get two people trying to allocate at the same time. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> Reviewed-by: Liu Bo <liubo2009@cn.fujitsu.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r--fs/btrfs/ctree.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 0d00a07..2e61fe1 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -740,8 +740,10 @@ struct btrfs_space_info {
*/
unsigned long reservation_progress;
- int full; /* indicates that we cannot allocate any more
+ int full:1; /* indicates that we cannot allocate any more
chunks for this space */
+ int chunk_alloc:1; /* set if we are allocating a chunk */
+
int force_alloc; /* set if we need to force a chunk alloc for
this space */