aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/multipath.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2014-12-14 20:56:57 -0500
committerNeilBrown <neilb@suse.de>2015-02-03 16:35:52 -0500
commit5aa61f427e4979be733e4847b9199ff9cc48a47e (patch)
treed3e4fa9418f1134085cd9deef0877e7762076266 /drivers/md/multipath.c
parent3be260cc18f850873cd32381158e28b0a9a391fd (diff)
md: split detach operation out from ->stop.
Each md personality has a 'stop' operation which does two things: 1/ it finalizes some aspects of the array to ensure nothing is accessing the ->private data 2/ it frees the ->private data. All the steps in '1' can apply to all arrays and so can be performed in common code. This is useful as in the case where we change the personality which manages an array (in level_store()), it would be helpful to do step 1 early, and step 2 later. So split the 'step 1' functionality out into a new mddev_detach(). Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/multipath.c')
-rw-r--r--drivers/md/multipath.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c
index fedb1b31877d..9fe34453835b 100644
--- a/drivers/md/multipath.c
+++ b/drivers/md/multipath.c
@@ -504,8 +504,6 @@ static int multipath_stop (struct mddev *mddev)
504{ 504{
505 struct mpconf *conf = mddev->private; 505 struct mpconf *conf = mddev->private;
506 506
507 md_unregister_thread(&mddev->thread);
508 blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/
509 mempool_destroy(conf->pool); 507 mempool_destroy(conf->pool);
510 kfree(conf->multipaths); 508 kfree(conf->multipaths);
511 kfree(conf); 509 kfree(conf);