Btrfs: add a cond_resched() into the worker loop
authorChris Mason <chris.mason@oracle.com>
Thu, 15 Dec 2011 14:29:43 +0000 (09:29 -0500)
committerChris Mason <chris.mason@oracle.com>
Thu, 15 Dec 2011 15:50:38 +0000 (10:50 -0500)
If we have a constant stream of end_io completions or crc work,
we can hit softlockup messages from the async helper threads.  This
adds a cond_resched() into the loop to avoid them.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/async-thread.c

index 7ec1409..203e849 100644 (file)
@@ -331,7 +331,7 @@ again:
                        run_ordered_completions(worker->workers, work);
 
                        check_pending_worker_creates(worker);
-
+                       cond_resched();
                }
 
                spin_lock_irq(&worker->lock);