Lines Matching refs:disks

127 	if (sh->qd_idx == sh->disks - 1)
138 /* When walking through the disks in a raid5, starting at raid6_d0,
139 * We need to map each disk to a 'slot', where the data disks are slot
233 for (i = sh->disks; i--; )
502 init_stripe_shared_pages(struct stripe_head *sh, struct r5conf *conf, int disks)
511 nr_pages = (disks + cnt - 1) / cnt;
592 sh->disks = previous ? conf->previous_raid_disks : conf->raid_disks;
597 for (i = sh->disks; i--; ) {
699 struct md_rdev *rdev = READ_ONCE(conf->disks[i].rdev);
702 rdev = READ_ONCE(conf->disks[i].replacement);
724 struct md_rdev *rdev = READ_ONCE(conf->disks[i].rdev);
727 rdev = READ_ONCE(conf->disks[i].replacement);
877 BUG_ON(sh->overwrite_disks > (sh->disks - sh->raid_conf->max_degraded));
878 return sh->overwrite_disks == (sh->disks - sh->raid_conf->max_degraded);
1143 int i, disks = sh->disks;
1156 for (i = disks; i--; ) {
1186 rdev = conf->disks[i].rdev;
1187 rrdev = conf->disks[i].replacement;
1444 for (i = sh->disks; i--; ) {
1483 for (i = sh->disks; i--; ) {
1547 return (void *) (to_addr_page(percpu, i) + sh->disks + 2);
1556 return (unsigned int *) (to_addr_conv(sh, percpu, 0) + sh->disks + 2);
1562 int disks = sh->disks;
1580 for (i = disks; i--; ) {
1602 * @srcs - (struct page *) array of size sh->disks
1616 int disks = sh->disks;
1617 int syndrome_disks = sh->ddf_layout ? disks : (disks - 2);
1622 for (i = 0; i < disks; i++)
1650 i = raid6_next_disk(i, disks);
1659 int disks = sh->disks;
1703 for (i = disks; i-- ; ) {
1723 int i, count, disks = sh->disks;
1724 int syndrome_disks = sh->ddf_layout ? disks : disks-2;
1746 for (i = 0; i < disks ; i++) {
1762 i = raid6_next_disk(i, disks);
1774 /* Q disk is one of the missing disks */
1796 for (i = disks; i-- ; ) {
1859 int disks = sh->disks;
1873 for (i = disks; i--; ) {
1923 int disks = sh->disks;
1930 for (i = disks; i--; ) {
1994 int disks = sh->disks;
2003 for (i = disks; i--; ) {
2009 for (i = disks; i--; ) {
2042 int disks = sh->disks;
2058 for (i = 0; i < sh->disks; i++) {
2064 if (i >= sh->disks) {
2081 for (i = disks; i--; ) {
2092 for (i = disks; i--; ) {
2151 for (i = 0; i < sh->disks; i++) {
2157 if (i >= sh->disks) {
2213 int disks = sh->disks;
2234 for (i = disks; i--; ) {
2277 int overlap_clear = 0, i, disks = sh->disks;
2338 for (i = disks; i--; ) {
2358 int disks, struct r5conf *conf)
2382 if (init_stripe_shared_pages(sh, conf, disks)) {
2446 * @num: total number of disks in the array
2530 * 3/ reallocate conf->disks to be suitable bigger. If this fails,
2619 * conf->disks and the scribble region
2624 ndisks[i] = conf->disks[i];
2638 kfree(conf->disks);
2639 conf->disks = ndisks;
2722 int disks = sh->disks, i;
2726 for (i=0 ; i<disks; i++)
2733 if (i == disks) {
2743 rdev = conf->disks[i].replacement;
2745 rdev = conf->disks[i].rdev;
2850 int disks = sh->disks, i;
2854 for (i = 0 ; i < disks; i++) {
2856 rdev = conf->disks[i].rdev;
2860 rdev = conf->disks[i].replacement;
2868 rdev = conf->disks[i].rdev;
2875 if (i == disks) {
3163 int raid_disks = sh->disks;
3293 * like to flush data in journal to RAID disks first, so complex rmw
3313 * In journal failure, we try to flush all cached data to raid disks
3340 int i, pd_idx = sh->pd_idx, qd_idx = sh->qd_idx, disks = sh->disks;
3353 for (i = disks; i--; ) {
3382 if (s->locked + conf->max_degraded == disks)
3392 for (i = disks; i--; ) {
3486 for (i = 0; i < sh->disks; i++) {
3608 int disks = previous ? conf->previous_raid_disks : conf->raid_disks;
3611 stripe * (disks - conf->max_degraded)
3619 struct stripe_head_state *s, int disks)
3623 for (i = disks; i--; ) {
3628 struct md_rdev *rdev = conf->disks[i].rdev;
3753 struct md_rdev *rdev = conf->disks[i].rdev;
3761 rdev = conf->disks[i].replacement;
3782 rdev = sh->raid_conf->disks[disk_idx].replacement;
3793 int disk_idx, int disks)
3900 int disk_idx, int disks)
3905 if (need_this_block(sh, s, disk_idx, disks)) {
3922 if ((s->uptodate == disks - 1) &&
3945 } else if (s->uptodate == disks-2 && s->failed >= 2) {
3950 for (other = disks; other--; ) {
3987 int disks)
4001 * disks first, this avoids handling complex rmw of write
4011 for (i = disks; i--; )
4012 if (fetch_block(sh, s, i, disks))
4027 struct stripe_head *sh, int disks)
4035 for (i = disks; i--; )
4144 int disks)
4166 } else for (i = disks; i--; ) {
4178 rmw += 2*disks; /* cannot read it */
4189 rcw += 2*disks;
4201 for (i = disks; i--; ) {
4231 for (i = disks; i--; ) {
4256 for (i = disks; i--; ) {
4284 if (rcw > disks && rmw > disks &&
4306 struct stripe_head_state *s, int disks)
4317 BUG_ON(s->uptodate != disks);
4337 BUG_ON(s->uptodate != disks);
4400 int disks)
4585 for (i = 0; i < sh->disks; i++)
4651 int disks = sh->disks;
4665 for (i=disks; i--; ) {
4707 rdev = conf->disks[i].replacement;
4718 rdev = conf->disks[i].rdev;
4765 struct md_rdev *rdev2 = conf->disks[i].rdev;
4778 struct md_rdev *rdev2 = conf->disks[i].rdev;
4787 struct md_rdev *rdev2 = conf->disks[i].replacement;
4809 rdev = conf->disks[i].replacement;
4913 for (i = 0; i < sh->disks; i++) {
4927 for (i = 0; i < head_sh->disks; i++)
4943 int disks = sh->disks;
5027 * the stripe if there is data need write to raid disks
5035 handle_failed_stripe(conf, sh, &s, disks);
5058 for (i = disks; i--; ) {
5101 handle_stripe_clean_event(conf, sh, disks);
5104 r5c_handle_cached_data_endio(conf, sh, disks);
5113 || (s.syncing && (s.uptodate + s.compute < disks))
5116 handle_stripe_fill(sh, &s, disks);
5137 handle_stripe_dirtying(conf, sh, &s, disks);
5144 disks);
5157 disks);
5174 handle_parity_checks6(conf, sh, &s, disks);
5176 handle_parity_checks5(conf, sh, &s, disks);
5257 sh->disks = conf->raid_disks;
5287 for (i = disks; i--; ) {
5292 rdev = conf->disks[i].rdev;
5299 rdev = conf->disks[i].rdev;
5305 rdev = conf->disks[i].replacement;
5308 rdev = conf->disks[i].rdev;
5470 rdev = conf->disks[dd_idx].replacement;
5473 rdev = conf->disks[dd_idx].rdev;
5834 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) {
5863 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) {
5883 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) {
6024 * If the bio covers multiple data disks, find sector within the bio that has
6360 for (j=sh->disks; j--;) {
6538 struct md_rdev *rdev = conf->disks[i].rdev;
7334 if (conf->disks[i].extra_page)
7335 put_page(conf->disks[i].extra_page);
7336 kfree(conf->disks);
7511 conf->disks = kcalloc(max_disks, sizeof(struct disk_info),
7514 if (!conf->disks)
7518 conf->disks[i].extra_page = alloc_page(GFP_KERNEL);
7519 if (!conf->disks[i].extra_page)
7569 disk = conf->disks + raid_disk;
7731 * disks are used to calculate parity); the disk is broken; The stripe
7836 * be a multiple of the largest chunk size times new data disks.
7920 rdev = conf->disks[i].rdev;
7923 if (conf->disks[i].replacement &&
8053 struct md_rdev *rdev = READ_ONCE(conf->disks[i].rdev);
8076 rdev = rcu_dereference(conf->disks[i].rdev);
8094 rdev = conf->disks[i].rdev;
8095 replacement = conf->disks[i].replacement;
8156 p = conf->disks + number;
8254 conf->disks[rdev->saved_raid_disk].rdev == NULL)
8258 p = conf->disks + disk;
8272 p = conf->disks + disk;
8415 if (conf->disks[i].replacement)
8436 pr_warn("md/raid:%s: array size must be reduced before number of disks\n",
8565 rdev = conf->disks[d].rdev;
8568 rdev = conf->disks[d].replacement;