aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/async-thread.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2009-08-05 16:36:45 -0400
committerChris Mason <chris.mason@oracle.com>2009-09-11 13:31:04 -0400
commit4e3f9c5042b43301d70781aee4a164a20878066b (patch)
treeb2ace00c27553ec2a10958e17d6b90ea264d5886 /fs/btrfs/async-thread.h
parent40431d6c1288793a682fc6f5e5b5c9d5cac34608 (diff)
Btrfs: keep irqs on more often in the worker threads
The btrfs worker thread spinlock was being used both for the queueing of IO and for the processing of ordered events. The ordered events never happen from end_io handlers, and so they don't need to use the _irq version of spinlocks. This adds a dedicated lock to the ordered lists so they don't have to run with irqs off. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/async-thread.h')
-rw-r--r--fs/btrfs/async-thread.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/async-thread.h b/fs/btrfs/async-thread.h
index a562ad8d83aa..fc089b95ec14 100644
--- a/fs/btrfs/async-thread.h
+++ b/fs/btrfs/async-thread.h
@@ -99,6 +99,9 @@ struct btrfs_workers {
99 /* lock for finding the next worker thread to queue on */ 99 /* lock for finding the next worker thread to queue on */
100 spinlock_t lock; 100 spinlock_t lock;
101 101
102 /* lock for the ordered lists */
103 spinlock_t order_lock;
104
102 /* extra name for this worker, used for current->name */ 105 /* extra name for this worker, used for current->name */
103 char *name; 106 char *name;
104}; 107};