diff options
author | NeilBrown <neilb@suse.de> | 2014-09-30 08:10:42 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2014-10-14 13:08:28 +1100 |
commit | ac05f256691fe427a3e84c19261adb0b67dd73c0 (patch) | |
tree | 2f7254e7117eac0fc0d974029e5bb5422866a73c /block | |
parent | 8b1afc3d6751063d3f0cdefe55719b1cd2f7edcc (diff) | |
download | linux-ac05f256691fe427a3e84c19261adb0b67dd73c0.tar.gz linux-ac05f256691fe427a3e84c19261adb0b67dd73c0.tar.bz2 linux-ac05f256691fe427a3e84c19261adb0b67dd73c0.zip |
md: don't start resync thread directly from md thread.
The main 'md' thread is needed for processing writes, so if it blocks
write requests could be delayed.
Starting a new thread requires some GFP_KERNEL allocations and so can
wait for writes to complete. This can deadlock.
So instead, ask a workqueue to start the sync thread.
There is no particular rush for this to happen, so any work queue
will do.
MD_RECOVERY_RUNNING is used to ensure only one thread is started.
Reported-by: BillStuff <billstuff2001@sbcglobal.net>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions