Btrfs: keep irqs on more often in the worker threads
authorChris Mason <chris.mason@oracle.com>
Wed, 5 Aug 2009 20:36:45 +0000 (16:36 -0400)
committerChris Mason <chris.mason@oracle.com>
Fri, 11 Sep 2009 17:31:04 +0000 (13:31 -0400)
commit4e3f9c5042b43301d70781aee4a164a20878066b
treeb2ace00c27553ec2a10958e17d6b90ea264d5886
parent40431d6c1288793a682fc6f5e5b5c9d5cac34608
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>
fs/btrfs/async-thread.c
fs/btrfs/async-thread.h