From: Chris Mason Date: Wed, 16 Sep 2009 00:00:36 +0000 (-0400) Subject: Btrfs: fix worker thread double spin_lock_irq X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=627e421a3f35ad6b52dc58982fb6f8a97c30dcd7;p=openwrt%2Fstaging%2Fblogic.git 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 --- diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c index 73df627ab8ab..80e33bc96c84 100644 --- a/fs/btrfs/async-thread.c +++ b/fs/btrfs/async-thread.c @@ -185,7 +185,7 @@ static int try_worker_shutdown(struct btrfs_worker_thread *worker) 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 @@ static int try_worker_shutdown(struct btrfs_worker_thread *worker) 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)