Btrfs: Allow worker threads to exit when idle
authorChris Mason <chris.mason@oracle.com>
Tue, 4 Aug 2009 20:56:34 +0000 (16:56 -0400)
committerChris Mason <chris.mason@oracle.com>
Fri, 11 Sep 2009 17:30:56 +0000 (13:30 -0400)
commit9042846bc7ae69cc3288d85af6bad16208d93a95
treed46077d217d31ce5600ef870c92fcdf330922b41
parentceab36edd3d3ad3ffd01d41d6d1e05ac1ff8357e
Btrfs: Allow worker threads to exit when idle

The Btrfs worker threads don't currently die off after they have
been idle for a while, leading to a lot of threads sitting around
doing nothing for each mount.

Also, they are unable to start atomically (from end_io hanlders).

This commit reworks the worker threads so they can be started
from end_io handlers (just setting a flag that asks for a thread
to be added at a later date) and so they can exit if they
have been idle for a long time.

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