From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de ([195.135.220.15]:55614 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751263AbbI3DLa (ORCPT ); Tue, 29 Sep 2015 23:11:30 -0400 From: Neil Brown To: gregkh@linuxfoundation.org, heinzm@redhat.com Date: Wed, 30 Sep 2015 13:11:22 +1000 Cc: stable@vger.kernel.org Subject: [PATCH 3.1[04]-stable] md: flush ->event_work before stopping array. In-Reply-To: <14432874412156@kroah.com> References: <14432874412156@kroah.com> Message-ID: <877fn8mwit.fsf@notabene.neil.brown.name> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Sender: stable-owner@vger.kernel.org List-ID: --=-=-= Content-Type: text/plain 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 Signed-off-by: NeilBrown Cc: stable@vger.kernel.org (2.6.38+ please delay 2 weeks after -final release) Fixes: 9d09e663d550 ("dm: raid456 basic support") --- Here is the patch rebased on 3.14 as requested. This same patch applies to 3.10 too. Thanks. diff --git a/drivers/md/md.c b/drivers/md/md.c index 4ad5cc4e63e8..4bb537a35428 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -5285,6 +5285,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; --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWC1LaAAoJEDnsnt1WYoG56jIP/RWq4Bwex90cLfKmtjIrrGFe Ucigu/HfaEQlqqcEU+MduWCh4mv7Na2LFqP+x4P903OJAb3pUHiDGyzK20qGm/6R dMO6yrOOjhVi4Hpe7igALVcwFyFLdfqKjkGMV/XtOiTbW35RaLwulDwG7F3wBH+P 7BZTD2aIcDkgRNAyJJJ1LKcsXmcMJGHkh3S0QhFH+oKGld3MXPGw8a8qIliG0zUw GK89ceAsG+pjnI6Q5V57pk+M3VazzT4KlgSdMoMifq1H/3RY+VLXnPi1NEpOGJwQ 0lZV0e4glMM+4MYmGQN15+knaRDbv6sGq2uS9umCiJkXJ4gtIjrBgqN/+2yRqK6S DByPT64O2cr7yb4Wa2VL0oKDAZRNh+WpRm5ww2yqlc9b93eTzYiON4WHesRSxyoX bdLQaMz9dbV2V2NvXZoaAsGtYgMljn8CgXihFmoOtv36ltAn877MKB31HkIEE9al 1e/FKZCxuWEhGY7bATXeAuUJeqvaYNSpk0AI6+iIpCrpZ5lCqtqsUMDIQijX0DJ9 K2RRubsD3NdLKmCZboirqNY98jGE41UeXj8EFKv/7VxBz/eMox9uhGlzXH+PaJ/8 1UF+7BIuLcsgXwEHuDg5jbX30rDO9/bgTmZnz0rwVnK/2d3QXDp7eQYLceOqZSdY cLxNgPt/fv+I+axvnxZm =nIUG -----END PGP SIGNATURE----- --=-=-=--