md-cluster: Fix the remove sequence with the new MD reload code
authorGoldwyn Rodrigues <rgoldwyn@suse.com>
Sun, 20 Dec 2015 23:51:00 +0000 (10:51 +1100)
committerNeilBrown <neilb@suse.com>
Wed, 6 Jan 2016 00:38:42 +0000 (11:38 +1100)
The remove disk message does not need metadata_update_start(), but
can be an independent message.

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: NeilBrown <neilb@suse.com>
drivers/md/md-cluster.c
drivers/md/md.c

index 3fd7301fd7afce062c6d4450acd0835076cd8386..b58374daff32b05f0be4456c48d562061acd5513 100644 (file)
@@ -997,7 +997,7 @@ static int remove_disk(struct mddev *mddev, struct md_rdev *rdev)
        struct md_cluster_info *cinfo = mddev->cluster_info;
        cmsg.type = cpu_to_le32(REMOVE);
        cmsg.raid_slot = cpu_to_le32(rdev->desc_nr);
-       return __sendmsg(cinfo, &cmsg);
+       return sendmsg(cinfo, &cmsg);
 }
 
 static int gather_bitmaps(struct md_rdev *rdev)
index 198e29dffb9852e2c41aca0a5fdd4e7c1312804e..ab3995de0418c9ac327dbb441576a1bd0cd1c7f5 100644 (file)
@@ -6134,15 +6134,11 @@ static int hot_remove_disk(struct mddev *mddev, dev_t dev)
 {
        char b[BDEVNAME_SIZE];
        struct md_rdev *rdev;
-       int ret = -1;
 
        rdev = find_rdev(mddev, dev);
        if (!rdev)
                return -ENXIO;
 
-       if (mddev_is_clustered(mddev))
-               ret = md_cluster_ops->metadata_update_start(mddev);
-
        if (rdev->raid_disk < 0)
                goto kick_rdev;
 
@@ -6153,7 +6149,7 @@ static int hot_remove_disk(struct mddev *mddev, dev_t dev)
                goto busy;
 
 kick_rdev:
-       if (mddev_is_clustered(mddev) && ret == 0)
+       if (mddev_is_clustered(mddev))
                md_cluster_ops->remove_disk(mddev, rdev);
 
        md_kick_rdev_from_array(rdev);
@@ -6162,9 +6158,6 @@ kick_rdev:
 
        return 0;
 busy:
-       if (mddev_is_clustered(mddev) && ret == 0)
-               md_cluster_ops->metadata_update_cancel(mddev);
-
        printk(KERN_WARNING "md: cannot remove active disk %s from %s ...\n",
                bdevname(rdev->bdev,b), mdname(mddev));
        return -EBUSY;
This page took 0.028984 seconds and 5 git commands to generate.