From: Alasdair G Kergon The multipath destructor must flush its workqueue. Otherwise items that reference the destroyed object could remain. From: "goggin, edward" Signed-off-by: Lars Marowsky-Bree Signed-off-by: Alasdair G Kergon Signed-off-by: Andrew Morton --- drivers/md/dm-mpath.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN drivers/md/dm-mpath.c~device-mapper-multipath-flush-workqueue-when-destroying drivers/md/dm-mpath.c --- 25/drivers/md/dm-mpath.c~device-mapper-multipath-flush-workqueue-when-destroying Fri Jul 8 16:45:28 2005 +++ 25-akpm/drivers/md/dm-mpath.c Fri Jul 8 16:45:28 2005 @@ -752,6 +752,8 @@ static int multipath_ctr(struct dm_targe static void multipath_dtr(struct dm_target *ti) { struct multipath *m = (struct multipath *) ti->private; + + flush_workqueue(kmultipathd); free_multipath(m); } _