diff options
-rw-r--r-- | drivers/md/md-cluster.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/md/md-cluster.c b/drivers/md/md-cluster.c index 35ac2e8cb7f1..aad5e7cda523 100644 --- a/drivers/md/md-cluster.c +++ b/drivers/md/md-cluster.c @@ -847,20 +847,21 @@ static int metadata_update_finish(struct mddev *mddev) struct cluster_msg cmsg; struct md_rdev *rdev; int ret = 0; + int raid_slot = -1; memset(&cmsg, 0, sizeof(cmsg)); cmsg.type = cpu_to_le32(METADATA_UPDATED); - cmsg.raid_slot = -1; /* Pick up a good active device number to send. */ rdev_for_each(rdev, mddev) if (rdev->raid_disk > -1 && !test_bit(Faulty, &rdev->flags)) { - cmsg.raid_slot = cpu_to_le32(rdev->desc_nr); + raid_slot = rdev->desc_nr; break; } - if (cmsg.raid_slot >= 0) + if (raid_slot >= 0) { + cmsg.raid_slot = cpu_to_le32(raid_slot); ret = __sendmsg(cinfo, &cmsg); - else + } else pr_warn("md-cluster: No good device id found to send\n"); unlock_comm(cinfo); return ret; |