md: flush ->event_work before stopping array.
[firefly-linux-kernel-4.4.55.git] / drivers / md / md.c
index 37ff00d014b42761aa2e5b1b2d4016380c18032c..7c45286e2662697a91ab3f3f2075080700826443 100644 (file)
@@ -5306,6 +5306,8 @@ EXPORT_SYMBOL_GPL(md_stop_writes);
 static void __md_stop(struct mddev *mddev)
 {
        mddev->ready = 0;
+       /* Ensure ->event_work is done */
+       flush_workqueue(md_misc_wq);
        mddev->pers->stop(mddev);
        if (mddev->pers->sync_request && mddev->to_remove == NULL)
                mddev->to_remove = &md_redundancy_group;