|
@@ -1508,12 +1508,10 @@ static void super_1_sync(mddev_t *mddev, mdk_rdev_t *rdev)
|
|
|
|
|
|
if (rdev->raid_disk >= 0 &&
|
|
|
!test_bit(In_sync, &rdev->flags)) {
|
|
|
- if (rdev->recovery_offset > 0) {
|
|
|
- sb->feature_map |=
|
|
|
- cpu_to_le32(MD_FEATURE_RECOVERY_OFFSET);
|
|
|
- sb->recovery_offset =
|
|
|
- cpu_to_le64(rdev->recovery_offset);
|
|
|
- }
|
|
|
+ sb->feature_map |=
|
|
|
+ cpu_to_le32(MD_FEATURE_RECOVERY_OFFSET);
|
|
|
+ sb->recovery_offset =
|
|
|
+ cpu_to_le64(rdev->recovery_offset);
|
|
|
}
|
|
|
|
|
|
if (mddev->reshape_position != MaxSector) {
|
|
@@ -1547,7 +1545,7 @@ static void super_1_sync(mddev_t *mddev, mdk_rdev_t *rdev)
|
|
|
sb->dev_roles[i] = cpu_to_le16(0xfffe);
|
|
|
else if (test_bit(In_sync, &rdev2->flags))
|
|
|
sb->dev_roles[i] = cpu_to_le16(rdev2->raid_disk);
|
|
|
- else if (rdev2->raid_disk >= 0 && rdev2->recovery_offset > 0)
|
|
|
+ else if (rdev2->raid_disk >= 0)
|
|
|
sb->dev_roles[i] = cpu_to_le16(rdev2->raid_disk);
|
|
|
else
|
|
|
sb->dev_roles[i] = cpu_to_le16(0xffff);
|
|
@@ -6786,6 +6784,7 @@ static int remove_and_add_spares(mddev_t *mddev)
|
|
|
nm, mdname(mddev));
|
|
|
spares++;
|
|
|
md_new_event(mddev);
|
|
|
+ set_bit(MD_CHANGE_DEVS, &mddev->flags);
|
|
|
} else
|
|
|
break;
|
|
|
}
|