diff options
| author | Neil Brown <neilb@cse.unsw.edu.au> | 2004-11-10 21:48:51 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-11-10 21:48:51 -0800 |
| commit | 854d7a6fa60eaa67ef26fb0559b01a2cfb2fbcae (patch) | |
| tree | ad582816cb0ab8f4e41e6f061b0f17b0019c3656 /drivers/md/multipath.c | |
| parent | c07e1a694d656d09179a76e3c74a35d1b6eab047 (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.c | 1 |
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); |
