Lines Matching refs:replacement
700 rdev = rcu_dereference(conf->disks[i].replacement); in raid5_calc_degraded()
726 rdev = rcu_dereference(conf->disks[i].replacement); in raid5_calc_degraded()
1186 rrdev = rcu_dereference(conf->disks[i].replacement); in ops_run_io()
2781 rdev = rdev_pend_deref(conf->disks[i].replacement); in raid5_end_read_request()
2892 int replacement = 0; in raid5_end_write_request() local
2900 rdev = rdev_pend_deref(conf->disks[i].replacement); in raid5_end_write_request()
2902 replacement = 1; in raid5_end_write_request()
2920 if (replacement) { in raid5_end_write_request()
2949 if (sh->batch_head && bi->bi_status && !replacement) in raid5_end_write_request()
3805 rdev = rcu_dereference(conf->disks[i].replacement); in handle_failed_sync()
3827 rdev = rcu_dereference(sh->raid_conf->disks[disk_idx].replacement); in want_replace()
4756 rdev = rcu_dereference(conf->disks[i].replacement); in analyse_stripe()
4837 conf->disks[i].replacement); in analyse_stripe()
4859 conf->disks[i].replacement); in analyse_stripe()
5356 rdev = rdev_pend_deref(conf->disks[i].replacement); in handle_stripe()
5522 rdev = rcu_dereference(conf->disks[dd_idx].replacement); in raid5_read_one_chunk()
7652 if (disk->replacement) in setup_conf()
7654 RCU_INIT_POINTER(disk->replacement, rdev); in setup_conf()
7944 if (!rdev && conf->disks[i].replacement) { in raid5_run()
7947 conf->disks[i].replacement); in raid5_run()
7948 conf->disks[i].replacement = NULL; in raid5_run()
7954 if (rcu_access_pointer(conf->disks[i].replacement) && in raid5_run()
8179 struct md_rdev *rdev, *replacement; in raid5_spare_active() local
8185 replacement = rdev_mdlock_deref(mddev, in raid5_spare_active()
8186 conf->disks[i].replacement); in raid5_spare_active()
8187 if (replacement in raid5_spare_active()
8188 && replacement->recovery_offset == MaxSector in raid5_spare_active()
8189 && !test_bit(Faulty, &replacement->flags) in raid5_spare_active()
8190 && !test_and_set_bit(In_sync, &replacement->flags)) { in raid5_spare_active()
8204 sysfs_notify_dirent_safe(replacement->sysfs_state); in raid5_spare_active()
8250 else if (rdev == rcu_access_pointer(p->replacement)) in raid5_remove_disk()
8251 rdevp = &p->replacement; in raid5_remove_disk()
8270 (!rcu_access_pointer(p->replacement) || in raid5_remove_disk()
8271 rcu_access_pointer(p->replacement) == rdev) && in raid5_remove_disk()
8292 tmp = rcu_access_pointer(p->replacement); in raid5_remove_disk()
8300 rcu_assign_pointer(p->replacement, NULL); in raid5_remove_disk()
8380 p->replacement == NULL) { in raid5_add_disk()
8386 rcu_assign_pointer(p->replacement, rdev); in raid5_add_disk()
8519 if (rdev_mdlock_deref(mddev, conf->disks[i].replacement)) in raid5_start_reshape()
8695 conf->disks[d].replacement); in raid5_finish_reshape()