aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/md.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r--drivers/md/md.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index d406a79f9140..ca011d1d1de7 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2477,8 +2477,10 @@ state_store(struct md_rdev *rdev, const char *buf, size_t len)
2477 else { 2477 else {
2478 struct mddev *mddev = rdev->mddev; 2478 struct mddev *mddev = rdev->mddev;
2479 if (mddev_is_clustered(mddev)) 2479 if (mddev_is_clustered(mddev))
2480 md_cluster_ops->metadata_update_start(mddev); 2480 md_cluster_ops->remove_disk(mddev, rdev);
2481 md_kick_rdev_from_array(rdev); 2481 md_kick_rdev_from_array(rdev);
2482 if (mddev_is_clustered(mddev))
2483 md_cluster_ops->metadata_update_start(mddev);
2482 if (mddev->pers) 2484 if (mddev->pers)
2483 md_update_sb(mddev, 1); 2485 md_update_sb(mddev, 1);
2484 md_new_event(mddev); 2486 md_new_event(mddev);
@@ -5968,6 +5970,9 @@ static int hot_remove_disk(struct mddev *mddev, dev_t dev)
5968 if (rdev->raid_disk >= 0) 5970 if (rdev->raid_disk >= 0)
5969 goto busy; 5971 goto busy;
5970 5972
5973 if (mddev_is_clustered(mddev))
5974 md_cluster_ops->remove_disk(mddev, rdev);
5975
5971 md_kick_rdev_from_array(rdev); 5976 md_kick_rdev_from_array(rdev);
5972 md_update_sb(mddev, 1); 5977 md_update_sb(mddev, 1);
5973 md_new_event(mddev); 5978 md_new_event(mddev);