Browse Source

md/raid10: avoid fullsync when not necessary.

This is the raid10 equivalent of

commit 4f0a5e012cf41321d611e7cad63e1017d143d138
    MD RAID1: Further conditionalize 'fullsync'

If a device in a newly assembled array is not fully recovered we
currently do a fully resync by don't need to.

Signed-off-by: NeilBrown <neilb@suse.de>
NeilBrown 11 years ago
parent
commit
0b59bb6422
1 changed files with 2 additions and 1 deletions
  1. 2 1
      drivers/md/raid10.c

+ 2 - 1
drivers/md/raid10.c

@@ -3747,7 +3747,8 @@ static int run(struct mddev *mddev)
 		    !test_bit(In_sync, &disk->rdev->flags)) {
 		    !test_bit(In_sync, &disk->rdev->flags)) {
 			disk->head_position = 0;
 			disk->head_position = 0;
 			mddev->degraded++;
 			mddev->degraded++;
-			if (disk->rdev)
+			if (disk->rdev &&
+			    disk->rdev->saved_raid_disk < 0)
 				conf->fullsync = 1;
 				conf->fullsync = 1;
 		}
 		}
 		disk->recovery_disabled = mddev->recovery_disabled - 1;
 		disk->recovery_disabled = mddev->recovery_disabled - 1;