--- linux-2.6.11.6/drivers/md/raid1.c.orig Sat Mar 26 04:28:21 2005 +++ linux-2.6.11.6/drivers/md/raid1.c Sun Jun 12 00:32:54 2005 @@ -397,11 +565,23 @@ !conf->mirrors[disk].rdev->in_sync) continue; +#ifdef CONFIG_MD_FR1 + if (0) +#endif /* CONFIG_MD_FR1 */ if (!atomic_read(&conf->mirrors[disk].rdev->nr_pending)) { new_disk = disk; break; } + +#ifdef CONFIG_MD_FR1 + /* + * Make slower disks appear more distant. + */ + new_distance = abs(this_sector - conf->mirrors[disk].head_position) + * conf->latency[disk] - 1; +#else new_distance = abs(this_sector - conf->mirrors[disk].head_position); +#endif /* CONFIG_MD_FR1 */ if (new_distance < current_distance) { current_distance = new_distance; new_disk = disk;