[3.19.y-ckt stable] Patch "md: flush ->event_work before stopping array." has been added to staging queue

Kamal Mostafa kamal at canonical.com
Tue Sep 8 18:42:39 UTC 2015


This is a note to let you know that I have just added a patch titled

    md: flush ->event_work before stopping array.

to the linux-3.19.y-queue branch of the 3.19.y-ckt extended stable tree 
which can be found at:

    http://kernel.ubuntu.com/git/ubuntu/linux.git/log/?h=linux-3.19.y-queue

This patch is scheduled to be released in version 3.19.8-ckt7.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.19.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Kamal

------

>From 6cef1036a51926a2e6c9bfa51782d5710a665677 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb at suse.com>
Date: Wed, 22 Jul 2015 10:20:07 +1000
Subject: md: flush ->event_work before stopping array.

commit ee5d004fd0591536a061451eba2b187092e9127c 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: Heinz Mauelshagen <heinzm at redhat.com>
Signed-off-by: NeilBrown <neilb at suse.com>
Fixes: 9d09e663d550 ("dm: raid456 basic support")
[kamal: backport to 3.19-stable: context]
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
 drivers/md/md.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index a31e15b..d7f0a56 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5076,6 +5076,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)
--
1.9.1





More information about the kernel-team mailing list