|
@@ -5159,7 +5159,7 @@ static int add_new_disk(mddev_t * mddev, mdu_disk_info_t *info)
|
|
|
PTR_ERR(rdev));
|
|
|
return PTR_ERR(rdev);
|
|
|
}
|
|
|
- /* set save_raid_disk if appropriate */
|
|
|
+ /* set saved_raid_disk if appropriate */
|
|
|
if (!mddev->persistent) {
|
|
|
if (info->state & (1<<MD_DISK_SYNC) &&
|
|
|
info->raid_disk < mddev->raid_disks)
|
|
@@ -5169,7 +5169,10 @@ static int add_new_disk(mddev_t * mddev, mdu_disk_info_t *info)
|
|
|
} else
|
|
|
super_types[mddev->major_version].
|
|
|
validate_super(mddev, rdev);
|
|
|
- rdev->saved_raid_disk = rdev->raid_disk;
|
|
|
+ if (test_bit(In_sync, &rdev->flags))
|
|
|
+ rdev->saved_raid_disk = rdev->raid_disk;
|
|
|
+ else
|
|
|
+ rdev->saved_raid_disk = -1;
|
|
|
|
|
|
clear_bit(In_sync, &rdev->flags); /* just to be sure */
|
|
|
if (info->state & (1<<MD_DISK_WRITEMOSTLY))
|