Btrfs: Check kthread_should_stop() before schedule() in worker_loop
authoryanhai zhu <zhu.yanhai@gmail.com>
Wed, 12 Nov 2008 19:36:58 +0000 (14:36 -0500)
committerChris Mason <chris.mason@oracle.com>
Wed, 12 Nov 2008 19:36:58 +0000 (14:36 -0500)
commit0df49b911db2b22ea808b596070b1cc65c23d148
tree0750dd5ad6cfccff98f3c44c7ef120378cf42eb6
parentc36047d729a3fa080dd194b20b684cc9fe73e90c
Btrfs: Check kthread_should_stop() before schedule() in worker_loop

In worker_loop(), the func should check whether it has been requested to stop
before it decides to schedule out.

Otherwise if the stop request(also the last wake_up()) sent by
btrfs_stop_workers() happens when worker_loop() running after the "while"
judgement and before schedule(), woker_loop() will schedule away and never be
woken up, which will also cause btrfs_stop_workers() wait forever.

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