summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlasdair G Kergon <agk@redhat.com>2005-07-12 15:53:02 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-12 16:19:10 -0700
commita044d016896d2717694003f00d31a98194077511 (patch)
tree5c6e7b60319f345c270d6f86745f47bf0b3ffdad
parentf6a80ea8ed44de0b19c42d41928be37a186a3f41 (diff)
downloadlinux-a044d016896d2717694003f00d31a98194077511.tar.bz2
[PATCH] device-mapper multipath: Flush workqueue when destroying
The multipath destructor must flush its workqueue. Otherwise items that reference the destroyed object could remain. From: "goggin, edward" <egoggin@emc.com> Signed-off-by: Lars Marowsky-Bree <lmb@suse.de> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/md/dm-mpath.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index 84cdb700a247..fa72f0153206 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -752,6 +752,8 @@ static int multipath_ctr(struct dm_target *ti, unsigned int argc,
static void multipath_dtr(struct dm_target *ti)
{
struct multipath *m = (struct multipath *) ti->private;
+
+ flush_workqueue(kmultipathd);
free_multipath(m);
}