md-cluster: metadata_update_finish: consistently use cmsg.raid_slot as le32
As cmsg.raid_slot is le32, comparing for >0 is not meaningful. So introduce cpu-endian 'raid_slot' and only assign to cmsg.raid_slot when we know value is valid. Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: NeilBrown <neilb@suse.com>
This commit is contained in:
Родитель
c2a06c38d9
Коммит
ba2746b0fa
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче