aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-06-25 16:01:30 -0400
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:04:03 -0400
commita213501153fd66e2359e091b1612841305ba6551 (patch)
tree1f4c316c9d3cad0eb6d9be14cb0e67e46e815dce /fs/btrfs/ctree.h
parent925baeddc5b0764a53f2214a1253251bab0e0324 (diff)
Btrfs: Replace the big fs_mutex with a collection of other locks
Extent alloctions are still protected by a large alloc_mutex. Objectid allocations are covered by a objectid mutex Other btree operations are protected by a lock on individual btree nodes Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r--fs/btrfs/ctree.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 50891b39f366..692b8ea42de1 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -519,9 +519,9 @@ struct btrfs_fs_info {
519 struct backing_dev_info bdi; 519 struct backing_dev_info bdi;
520 spinlock_t hash_lock; 520 spinlock_t hash_lock;
521 struct mutex trans_mutex; 521 struct mutex trans_mutex;
522 struct mutex fs_mutex;
523 struct mutex alloc_mutex; 522 struct mutex alloc_mutex;
524 struct mutex chunk_mutex; 523 struct mutex chunk_mutex;
524 struct mutex drop_mutex;
525 struct list_head trans_list; 525 struct list_head trans_list;
526 struct list_head hashers; 526 struct list_head hashers;
527 struct list_head dead_roots; 527 struct list_head dead_roots;
@@ -554,7 +554,7 @@ struct btrfs_fs_info {
554 struct completion kobj_unregister; 554 struct completion kobj_unregister;
555 int do_barriers; 555 int do_barriers;
556 int closing; 556 int closing;
557 unsigned long throttles; 557 atomic_t throttles;
558 558
559 u64 total_pinned; 559 u64 total_pinned;
560 struct list_head dirty_cowonly_roots; 560 struct list_head dirty_cowonly_roots;
@@ -594,6 +594,7 @@ struct btrfs_root {
594 struct inode *inode; 594 struct inode *inode;
595 struct kobject root_kobj; 595 struct kobject root_kobj;
596 struct completion kobj_unregister; 596 struct completion kobj_unregister;
597 struct mutex objectid_mutex;
597 u64 objectid; 598 u64 objectid;
598 u64 last_trans; 599 u64 last_trans;
599 600