summaryrefslogtreecommitdiff
path: root/drivers/md/multipath.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@cse.unsw.edu.au>2004-11-10 21:48:51 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-11-10 21:48:51 -0800
commit854d7a6fa60eaa67ef26fb0559b01a2cfb2fbcae (patch)
treead582816cb0ab8f4e41e6f061b0f17b0019c3656 /drivers/md/multipath.c
parentc07e1a694d656d09179a76e3c74a35d1b6eab047 (diff)
[PATCH] md: delete unplug timer before shutting down md array
As the unplug timer can potentially fire at any time, and and it access data that is released by the md ->stop function, we need to del_timer_sync before releasing that data. (After much discussion, we created blk_sync_queue() for this) Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Contributions from Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/md/multipath.c')
-rw-r--r--drivers/md/multipath.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c
index cbce9d22093e..309398219556 100644
--- a/drivers/md/multipath.c
+++ b/drivers/md/multipath.c
@@ -547,6 +547,7 @@ static int multipath_stop (mddev_t *mddev)
md_unregister_thread(mddev->thread);
mddev->thread = NULL;
+ blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/
mempool_destroy(conf->pool);
kfree(conf->multipaths);
kfree(conf);