Lines Matching refs:disks
125 if (sh->qd_idx == sh->disks - 1) in raid6_d0()
231 for (i = sh->disks; i--; ) in do_release_stripe()
500 init_stripe_shared_pages(struct stripe_head *sh, struct r5conf *conf, int disks) in init_stripe_shared_pages() argument
509 nr_pages = (disks + cnt - 1) / cnt; in init_stripe_shared_pages()
590 sh->disks = previous ? conf->previous_raid_disks : conf->raid_disks; in init_stripe()
595 for (i = sh->disks; i--; ) { in init_stripe()
698 struct md_rdev *rdev = rcu_dereference(conf->disks[i].rdev); in raid5_calc_degraded()
700 rdev = rcu_dereference(conf->disks[i].replacement); in raid5_calc_degraded()
724 struct md_rdev *rdev = rcu_dereference(conf->disks[i].rdev); in raid5_calc_degraded()
726 rdev = rcu_dereference(conf->disks[i].replacement); in raid5_calc_degraded()
869 BUG_ON(sh->overwrite_disks > (sh->disks - sh->raid_conf->max_degraded)); in is_full_stripe_write()
870 return sh->overwrite_disks == (sh->disks - sh->raid_conf->max_degraded); in is_full_stripe_write()
1135 int i, disks = sh->disks; in ops_run_io() local
1148 for (i = disks; i--; ) { in ops_run_io()
1179 rrdev = rcu_dereference(conf->disks[i].replacement); in ops_run_io()
1181 rdev = rcu_dereference(conf->disks[i].rdev); in ops_run_io()
1451 for (i = sh->disks; i--; ) { in ops_complete_biofill()
1490 for (i = sh->disks; i--; ) { in ops_run_biofill()
1554 return (void *) (to_addr_page(percpu, i) + sh->disks + 2); in to_addr_conv()
1563 return (unsigned int *) (to_addr_conv(sh, percpu, 0) + sh->disks + 2); in to_addr_offs()
1569 int disks = sh->disks; in ops_run_compute5() local
1587 for (i = disks; i--; ) { in ops_run_compute5()
1623 int disks = sh->disks; in set_syndrome_sources() local
1624 int syndrome_disks = sh->ddf_layout ? disks : (disks - 2); in set_syndrome_sources()
1629 for (i = 0; i < disks; i++) in set_syndrome_sources()
1657 i = raid6_next_disk(i, disks); in set_syndrome_sources()
1666 int disks = sh->disks; in ops_run_compute6_1() local
1710 for (i = disks; i-- ; ) { in ops_run_compute6_1()
1730 int i, count, disks = sh->disks; in ops_run_compute6_2() local
1731 int syndrome_disks = sh->ddf_layout ? disks : disks-2; in ops_run_compute6_2()
1753 for (i = 0; i < disks ; i++) { in ops_run_compute6_2()
1769 i = raid6_next_disk(i, disks); in ops_run_compute6_2()
1803 for (i = disks; i-- ; ) { in ops_run_compute6_2()
1866 int disks = sh->disks; in ops_run_prexor5() local
1880 for (i = disks; i--; ) { in ops_run_prexor5()
1930 int disks = sh->disks; in ops_run_biodrain() local
1937 for (i = disks; i--; ) { in ops_run_biodrain()
2001 int disks = sh->disks; in ops_complete_reconstruct() local
2010 for (i = disks; i--; ) { in ops_complete_reconstruct()
2016 for (i = disks; i--; ) { in ops_complete_reconstruct()
2049 int disks = sh->disks; in ops_run_reconstruct5() local
2065 for (i = 0; i < sh->disks; i++) { in ops_run_reconstruct5()
2071 if (i >= sh->disks) { in ops_run_reconstruct5()
2088 for (i = disks; i--; ) { in ops_run_reconstruct5()
2099 for (i = disks; i--; ) { in ops_run_reconstruct5()
2158 for (i = 0; i < sh->disks; i++) { in ops_run_reconstruct6()
2164 if (i >= sh->disks) { in ops_run_reconstruct6()
2220 int disks = sh->disks; in ops_run_check_p() local
2241 for (i = disks; i--; ) { in ops_run_check_p()
2284 int overlap_clear = 0, i, disks = sh->disks; in raid_run_ops() local
2345 for (i = disks; i--; ) { in raid_run_ops()
2365 int disks, struct r5conf *conf) in alloc_stripe() argument
2389 if (init_stripe_shared_pages(sh, conf, disks)) { in alloc_stripe()
2633 ndisks[i] = conf->disks[i]; in resize_stripes()
2647 kfree(conf->disks); in resize_stripes()
2648 conf->disks = ndisks; in resize_stripes()
2753 int disks = sh->disks, i; in raid5_end_read_request() local
2757 for (i=0 ; i<disks; i++) in raid5_end_read_request()
2764 if (i == disks) { in raid5_end_read_request()
2774 rdev = rdev_pend_deref(conf->disks[i].replacement); in raid5_end_read_request()
2776 rdev = rdev_pend_deref(conf->disks[i].rdev); in raid5_end_read_request()
2881 int disks = sh->disks, i; in raid5_end_write_request() local
2887 for (i = 0 ; i < disks; i++) { in raid5_end_write_request()
2889 rdev = rdev_pend_deref(conf->disks[i].rdev); in raid5_end_write_request()
2893 rdev = rdev_pend_deref(conf->disks[i].replacement); in raid5_end_write_request()
2901 rdev = rdev_pend_deref(conf->disks[i].rdev); in raid5_end_write_request()
2908 if (i == disks) { in raid5_end_write_request()
3198 int raid_disks = sh->disks; in raid5_compute_blocknr()
3375 int i, pd_idx = sh->pd_idx, qd_idx = sh->qd_idx, disks = sh->disks; in schedule_reconstruction() local
3388 for (i = disks; i--; ) { in schedule_reconstruction()
3417 if (s->locked + conf->max_degraded == disks) in schedule_reconstruction()
3427 for (i = disks; i--; ) { in schedule_reconstruction()
3521 for (i = 0; i < sh->disks; i++) { in stripe_bio_overlaps()
3643 int disks = previous ? conf->previous_raid_disks : conf->raid_disks; in stripe_set_idx() local
3646 stripe * (disks - conf->max_degraded) in stripe_set_idx()
3654 struct stripe_head_state *s, int disks) in handle_failed_stripe() argument
3658 for (i = disks; i--; ) { in handle_failed_stripe()
3665 rdev = rcu_dereference(conf->disks[i].rdev); in handle_failed_stripe()
3791 struct md_rdev *rdev = rcu_dereference(conf->disks[i].rdev); in handle_failed_sync()
3798 rdev = rcu_dereference(conf->disks[i].replacement); in handle_failed_sync()
3820 rdev = rcu_dereference(sh->raid_conf->disks[disk_idx].replacement); in want_replace()
3832 int disk_idx, int disks) in need_this_block() argument
3939 int disk_idx, int disks) in fetch_block() argument
3944 if (need_this_block(sh, s, disk_idx, disks)) { in fetch_block()
3961 if ((s->uptodate == disks - 1) && in fetch_block()
3984 } else if (s->uptodate == disks-2 && s->failed >= 2) { in fetch_block()
3989 for (other = disks; other--; ) { in fetch_block()
4026 int disks) in handle_stripe_fill() argument
4050 for (i = disks; i--; ) in handle_stripe_fill()
4051 if (fetch_block(sh, s, i, disks)) in handle_stripe_fill()
4066 struct stripe_head *sh, int disks) in handle_stripe_clean_event() argument
4074 for (i = disks; i--; ) in handle_stripe_clean_event()
4183 int disks) in handle_stripe_dirtying() argument
4205 } else for (i = disks; i--; ) { in handle_stripe_dirtying()
4217 rmw += 2*disks; /* cannot read it */ in handle_stripe_dirtying()
4228 rcw += 2*disks; in handle_stripe_dirtying()
4241 for (i = disks; i--; ) { in handle_stripe_dirtying()
4271 for (i = disks; i--; ) { in handle_stripe_dirtying()
4296 for (i = disks; i--; ) { in handle_stripe_dirtying()
4323 if (rcw > disks && rmw > disks && in handle_stripe_dirtying()
4345 struct stripe_head_state *s, int disks) in handle_parity_checks5() argument
4356 BUG_ON(s->uptodate != disks); in handle_parity_checks5()
4376 BUG_ON(s->uptodate != disks); in handle_parity_checks5()
4439 int disks) in handle_parity_checks6() argument
4624 for (i = 0; i < sh->disks; i++) in handle_stripe_expansion()
4690 int disks = sh->disks; in analyse_stripe() local
4705 for (i=disks; i--; ) { in analyse_stripe()
4749 rdev = rcu_dereference(conf->disks[i].replacement); in analyse_stripe()
4760 rdev = rcu_dereference(conf->disks[i].rdev); in analyse_stripe()
4808 conf->disks[i].rdev); in analyse_stripe()
4821 conf->disks[i].rdev); in analyse_stripe()
4830 conf->disks[i].replacement); in analyse_stripe()
4852 conf->disks[i].replacement); in analyse_stripe()
4957 for (i = 0; i < sh->disks; i++) { in break_stripe_batch_list()
4971 for (i = 0; i < head_sh->disks; i++) in break_stripe_batch_list()
4987 int disks = sh->disks; in handle_stripe() local
5079 handle_failed_stripe(conf, sh, &s, disks); in handle_stripe()
5102 for (i = disks; i--; ) { in handle_stripe()
5145 handle_stripe_clean_event(conf, sh, disks); in handle_stripe()
5148 r5c_handle_cached_data_endio(conf, sh, disks); in handle_stripe()
5157 || (s.syncing && (s.uptodate + s.compute < disks)) in handle_stripe()
5160 handle_stripe_fill(sh, &s, disks); in handle_stripe()
5181 handle_stripe_dirtying(conf, sh, &s, disks); in handle_stripe()
5188 disks); in handle_stripe()
5201 disks); in handle_stripe()
5218 handle_parity_checks6(conf, sh, &s, disks); in handle_stripe()
5220 handle_parity_checks5(conf, sh, &s, disks); in handle_stripe()
5301 sh->disks = conf->raid_disks; in handle_stripe()
5331 for (i = disks; i--; ) { in handle_stripe()
5336 rdev = rdev_pend_deref(conf->disks[i].rdev); in handle_stripe()
5343 rdev = rdev_pend_deref(conf->disks[i].rdev); in handle_stripe()
5349 rdev = rdev_pend_deref(conf->disks[i].replacement); in handle_stripe()
5352 rdev = rdev_pend_deref(conf->disks[i].rdev); in handle_stripe()
5525 rdev = rcu_dereference(conf->disks[dd_idx].replacement); in raid5_read_one_chunk()
5528 rdev = rcu_dereference(conf->disks[dd_idx].rdev); in raid5_read_one_chunk()
5900 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) { in stripe_ahead_of_reshape()
5929 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) { in add_all_stripe_bios()
5949 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) { in add_all_stripe_bios()
6371 for (j=sh->disks; j--;) { in reshape_request()
6550 struct md_rdev *rdev = rcu_dereference(conf->disks[i].rdev); in raid5_sync_request()
7356 if (conf->disks[i].extra_page) in free_conf()
7357 put_page(conf->disks[i].extra_page); in free_conf()
7358 kfree(conf->disks); in free_conf()
7531 conf->disks = kcalloc(max_disks, sizeof(struct disk_info), in setup_conf()
7534 if (!conf->disks) in setup_conf()
7538 conf->disks[i].extra_page = alloc_page(GFP_KERNEL); in setup_conf()
7539 if (!conf->disks[i].extra_page) in setup_conf()
7589 disk = conf->disks + raid_disk; in setup_conf()
7898 rdev = rdev_mdlock_deref(mddev, conf->disks[i].rdev); in raid5_run()
7899 if (!rdev && conf->disks[i].replacement) { in raid5_run()
7902 conf->disks[i].replacement); in raid5_run()
7903 conf->disks[i].replacement = NULL; in raid5_run()
7905 rcu_assign_pointer(conf->disks[i].rdev, rdev); in raid5_run()
7909 if (rcu_access_pointer(conf->disks[i].replacement) && in raid5_run()
8104 struct md_rdev *rdev = rcu_dereference(conf->disks[i].rdev); in raid5_status()
8127 rdev = rcu_dereference(conf->disks[i].rdev); in print_raid5_conf()
8145 rdev = rdev_mdlock_deref(mddev, conf->disks[i].rdev); in raid5_spare_active()
8147 conf->disks[i].replacement); in raid5_spare_active()
8208 p = conf->disks + number; in raid5_remove_disk()
8319 conf->disks[rdev->saved_raid_disk].rdev == NULL) in raid5_add_disk()
8323 p = conf->disks + disk; in raid5_add_disk()
8337 p = conf->disks + disk; in raid5_add_disk()
8643 conf->disks[d].rdev); in raid5_finish_reshape()
8647 conf->disks[d].replacement); in raid5_finish_reshape()