Commit e167dc6d authored by NeilBrown's avatar NeilBrown Committed by Kamal Mostafa

md: flush ->event_work before stopping array.

commit ee5d004f upstream.

The 'event_work' worker used by dm-raid may still be running
when the array is stopped.  This can result in an oops.

So flush the workqueue on which it is run after detaching
and before destroying the device.
Reported-by: default avatarHeinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.com>
Fixes: 9d09e663 ("dm: raid456 basic support")
[kamal: backport to 3.13-stable: context]
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
parent 397ce09a
......@@ -5272,6 +5272,8 @@ EXPORT_SYMBOL_GPL(md_stop_writes);
static void __md_stop(struct mddev *mddev)
{
/* Ensure ->event_work is done */
flush_workqueue(md_misc_wq);
mddev->ready = 0;
mddev->pers->stop(mddev);
if (mddev->pers->sync_request && mddev->to_remove == NULL)
......
Markdown is supported
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