Skip to content
Commit db29d79b authored by Yu Kuai's avatar Yu Kuai Committed by Mike Snitzer
Browse files

dm-raid: delay flushing event_work() after reconfig_mutex is released



After commit db5e653d ("md: delay choosing sync action to
md_start_sync()"), md_start_sync() will hold 'reconfig_mutex', however,
in order to make sure event_work is done, __md_stop() will flush
workqueue with reconfig_mutex grabbed, hence if sync_work is still
pending, deadlock will be triggered.

Fortunately, former pacthes to fix stopping sync_thread already make sure
all sync_work is done already, hence such deadlock is not possible
anymore. However, in order not to cause confusions for people by this
implicit dependency, delay flushing event_work to dm-raid where
'reconfig_mutex' is not held, and add some comments to emphasize that
the workqueue can't be flushed with 'reconfig_mutex'.

Fixes: db5e653d ("md: delay choosing sync action to md_start_sync()")
Depends-on: f52f5c71 ("md: fix stopping sync thread")
Signed-off-by: default avatarYu Kuai <yukuai3@huawei.com>
Acked-by: default avatarXiao Ni <xni@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
parent ceb6a6f0
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment