diff options
| author | Steve French <sfrench@us.ibm.com> | 2005-11-29 20:56:07 -0800 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2005-11-29 20:56:07 -0800 |
| commit | 606c0dafbe88102d64c1253caed8a2c36987070f (patch) | |
| tree | 23ce7b30341e71c6da8e0183d27e29167e833e26 /drivers/md/raid1.c | |
| parent | 6ab16d249513a50bef3f1b275cea6aa8d3f51832 (diff) | |
| parent | d2ef5ebb4c4fe141a82252d4db8d8521e6765c5a (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'drivers/md/raid1.c')
| -rw-r--r-- | drivers/md/raid1.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 2da9d3ba902d..3066c587b539 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -953,9 +953,6 @@ static int raid1_add_disk(mddev_t *mddev, mdk_rdev_t *rdev) int mirror = 0; mirror_info_t *p; - if (rdev->saved_raid_disk >= 0 && - conf->mirrors[rdev->saved_raid_disk].rdev == NULL) - mirror = rdev->saved_raid_disk; for (mirror=0; mirror < mddev->raid_disks; mirror++) if ( !(p=conf->mirrors+mirror)->rdev) { @@ -972,7 +969,10 @@ static int raid1_add_disk(mddev_t *mddev, mdk_rdev_t *rdev) p->head_position = 0; rdev->raid_disk = mirror; found = 1; - if (rdev->saved_raid_disk != mirror) + /* As all devices are equivalent, we don't need a full recovery + * if this was recently any drive of the array + */ + if (rdev->saved_raid_disk < 0) conf->fullsync = 1; rcu_assign_pointer(p->rdev, rdev); break; |
