diff options
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r-- | drivers/md/md.c | 7 |
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); |