Btrfs: fix worker thread double spin_lock_irq
The exit-on-idle code for async worker threads was incorrectly
calling spin_lock_irq with interrupts already off.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c
index 73df627..80e33bc 100644
--- a/fs/btrfs/async-thread.c
+++ b/fs/btrfs/async-thread.c
@@ -185,7 +185,7 @@
int freeit = 0;
spin_lock_irq(&worker->lock);
- spin_lock_irq(&worker->workers->lock);
+ spin_lock(&worker->workers->lock);
if (worker->workers->num_workers > 1 &&
worker->idle &&
!worker->working &&
@@ -196,7 +196,7 @@
list_del_init(&worker->worker_list);
worker->workers->num_workers--;
}
- spin_unlock_irq(&worker->workers->lock);
+ spin_unlock(&worker->workers->lock);
spin_unlock_irq(&worker->lock);
if (freeit)