Lines Matching full:replacement
443 rdev = conf->mirrors[dev].replacement; in raid10_end_write_request()
454 /* Never record new bad blocks to replacement, in raid10_end_write_request()
752 rdev = rcu_dereference(conf->mirrors[disk].replacement); in read_balance()
1212 struct bio *bio, bool replacement, in raid10_write_one_disk() argument
1226 if (replacement) { in raid10_write_one_disk()
1227 rdev = conf->mirrors[devnum].replacement; in raid10_write_one_disk()
1229 /* Replacement just got moved to main 'rdev' */ in raid10_write_one_disk()
1237 if (replacement) in raid10_write_one_disk()
1247 if (!replacement && test_bit(FailFast, in raid10_write_one_disk()
1351 conf->mirrors[d].replacement); in raid10_write_request()
1441 rdev = conf->mirrors[d].replacement; in raid10_write_request()
1704 if (tmp->replacement in raid10_spare_active()
1705 && tmp->replacement->recovery_offset == MaxSector in raid10_spare_active()
1706 && !test_bit(Faulty, &tmp->replacement->flags) in raid10_spare_active()
1707 && !test_and_set_bit(In_sync, &tmp->replacement->flags)) { in raid10_spare_active()
1708 /* Replacement has just become active */ in raid10_spare_active()
1721 sysfs_notify_dirent_safe(tmp->replacement->sysfs_state); in raid10_spare_active()
1772 p->replacement != NULL) in raid10_add_disk()
1775 set_bit(Replacement, &rdev->flags); in raid10_add_disk()
1782 rcu_assign_pointer(p->replacement, rdev); in raid10_add_disk()
1820 else if (rdev == p->replacement) in raid10_remove_disk()
1821 rdevp = &p->replacement; in raid10_remove_disk()
1835 (!p->replacement || p->replacement == rdev) && in raid10_remove_disk()
1851 if (p->replacement) { in raid10_remove_disk()
1853 p->rdev = p->replacement; in raid10_remove_disk()
1854 clear_bit(Replacement, &p->replacement->flags); in raid10_remove_disk()
1858 p->replacement = NULL; in raid10_remove_disk()
1954 rdev = conf->mirrors[d].replacement; in end_sync_write()
2092 /* Now write out to any replacement devices in sync_request_write()
2106 md_sync_acct(conf->mirrors[d].replacement->bdev, in sync_request_write()
2242 atomic_inc(&conf->mirrors[d].replacement->nr_pending); in recovery_request_write()
2243 md_sync_acct(conf->mirrors[d].replacement->bdev, in recovery_request_write()
2628 rdev = conf->mirrors[dev].replacement; in handle_write_completed()
2669 rdev = conf->mirrors[dev].replacement; in handle_write_completed()
2780 if (conf->mirrors[i].replacement) in init_resync()
2967 rcu_dereference(conf->mirrors[i].replacement); in raid10_sync_request()
3043 mreplace = rcu_dereference(mirror->replacement); in raid10_sync_request()
3071 /* Unless we are doing a full sync, or a replacement in raid10_sync_request()
3189 /* and maybe write to replacement */ in raid10_sync_request()
3363 rdev = rcu_dereference(conf->mirrors[d].replacement); in raid10_sync_request()
3370 /* Need to set up for writing to the replacement */ in raid10_sync_request()
3396 conf->mirrors[d].replacement, in raid10_sync_request()
3779 if (test_bit(Replacement, &rdev->flags)) { in raid10_run()
3780 if (disk->replacement) in raid10_run()
3782 disk->replacement = rdev; in raid10_run()
3840 if (!disk->rdev && disk->replacement) { in raid10_run()
3841 /* The replacement is all we have - use it */ in raid10_run()
3842 disk->rdev = disk->replacement; in raid10_run()
3843 disk->replacement = NULL; in raid10_run()
3844 clear_bit(Replacement, &disk->rdev->flags); in raid10_run()
3856 if (disk->replacement && in raid10_run()
3857 !test_bit(In_sync, &disk->replacement->flags) && in raid10_run()
3858 disk->replacement->saved_raid_disk < 0) { in raid10_run()
4592 rdev2 = rcu_dereference(conf->mirrors[d].replacement); in reshape_request()
4684 rdev = rcu_dereference(conf->mirrors[d].replacement); in reshape_request_write()
4822 rdev = conf->mirrors[d].replacement; in end_reshape_write()
4868 rdev = rcu_dereference(conf->mirrors[d].replacement); in raid10_finish_reshape()