Lines Matching refs:dd_idx

920 	int dd_idx;
951 dd_idx = 0;
952 while (dd_idx == sh->pd_idx || dd_idx == sh->qd_idx)
953 dd_idx++;
954 if (head->dev[dd_idx].towrite->bi_opf != sh->dev[dd_idx].towrite->bi_opf ||
955 bio_op(head->dev[dd_idx].towrite) != bio_op(sh->dev[dd_idx].towrite))
3001 int previous, int *dd_idx,
3030 *dd_idx = sector_div(stripe, data_disks);
3044 if (*dd_idx >= pd_idx)
3045 (*dd_idx)++;
3049 if (*dd_idx >= pd_idx)
3050 (*dd_idx)++;
3054 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
3058 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
3062 (*dd_idx)++;
3078 (*dd_idx)++; /* Q D D D P */
3080 } else if (*dd_idx >= pd_idx)
3081 (*dd_idx) += 2; /* D D P Q D */
3087 (*dd_idx)++; /* Q D D D P */
3089 } else if (*dd_idx >= pd_idx)
3090 (*dd_idx) += 2; /* D D P Q D */
3095 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks;
3100 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks;
3106 (*dd_idx) += 2;
3120 (*dd_idx)++; /* Q D D D P */
3122 } else if (*dd_idx >= pd_idx)
3123 (*dd_idx) += 2; /* D D P Q D */
3136 (*dd_idx)++; /* Q D D D P */
3138 } else if (*dd_idx >= pd_idx)
3139 (*dd_idx) += 2; /* D D P Q D */
3147 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
3154 if (*dd_idx >= pd_idx)
3155 (*dd_idx)++;
3161 if (*dd_idx >= pd_idx)
3162 (*dd_idx)++;
3168 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1);
3174 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1);
3180 (*dd_idx)++;
3215 int dummy1, dd_idx = i;
3313 if (check != sh->sector || dummy1 != dd_idx || sh2.pd_idx != sh->pd_idx
3488 int dd_idx, int forwrite)
3501 bip = &sh->dev[dd_idx].towrite;
3503 bip = &sh->dev[dd_idx].toread;
3530 (i == dd_idx || sh->dev[i].towrite)) {
3548 int dd_idx, int forwrite, int previous)
3555 bip = &sh->dev[dd_idx].towrite;
3559 bip = &sh->dev[dd_idx].toread;
3577 sector_t sector = sh->dev[dd_idx].sector;
3578 for (bi=sh->dev[dd_idx].towrite;
3579 sector < sh->dev[dd_idx].sector + RAID5_STRIPE_SECTORS(conf) &&
3581 bi = r5_next_bio(conf, bi, sh->dev[dd_idx].sector)) {
3585 if (sector >= sh->dev[dd_idx].sector + RAID5_STRIPE_SECTORS(conf))
3586 if (!test_and_set_bit(R5_OVERWRITE, &sh->dev[dd_idx].flags))
3591 (*bip)->bi_iter.bi_sector, sh->sector, dd_idx,
3592 sh->dev[dd_idx].sector);
3626 int dd_idx, int forwrite, int previous)
3630 if (stripe_bio_overlaps(sh, bi, dd_idx, forwrite)) {
3631 set_bit(R5_Overlap, &sh->dev[dd_idx].flags);
3636 __add_stripe_bio(sh, bi, dd_idx, forwrite, previous);
3648 int dd_idx;
3656 &dd_idx, sh);
4633 int dd_idx, j;
4639 &dd_idx, NULL);
4649 test_bit(R5_Expanded, &sh2->dev[dd_idx].flags)) {
4657 tx = async_memcpy(sh2->dev[dd_idx].page,
4658 sh->dev[i].page, sh2->dev[dd_idx].offset,
4662 set_bit(R5_Expanded, &sh2->dev[dd_idx].flags);
4663 set_bit(R5_UPTODATE, &sh2->dev[dd_idx].flags);
5506 int bad_sectors, dd_idx;
5515 &dd_idx, NULL);
5522 rdev = rcu_dereference(conf->disks[dd_idx].replacement);
5525 rdev = rcu_dereference(conf->disks[dd_idx].rdev);
5892 int dd_idx;
5894 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) {
5895 if (dd_idx == sh->pd_idx || dd_idx == sh->qd_idx)
5898 min_sector = min(min_sector, sh->dev[dd_idx].sector);
5899 max_sector = max(max_sector, sh->dev[dd_idx].sector);
5918 int dd_idx;
5923 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) {
5924 struct r5dev *dev = &sh->dev[dd_idx];
5926 if (dd_idx == sh->pd_idx || dd_idx == sh->qd_idx)
5933 if (stripe_bio_overlaps(sh, bi, dd_idx, forwrite)) {
5943 for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) {
5944 struct r5dev *dev = &sh->dev[dd_idx];
5946 if (dd_idx == sh->pd_idx || dd_idx == sh->qd_idx)
5953 __add_stripe_bio(sh, bi, dd_idx, forwrite, previous);
5985 int seq, dd_idx;
6015 &dd_idx, NULL);
6108 int dd_idx;
6115 sector = raid5_compute_sector(conf, r_sector, 0, &dd_idx, &sh);
6123 dd_idx++;
6124 while (dd_idx == sh.pd_idx || dd_idx == sh.qd_idx)
6125 dd_idx++;
6126 if (dd_idx >= raid_disks)
6280 int dd_idx;
6466 1, &dd_idx, NULL);
6470 1, &dd_idx, NULL);
6638 * it will be only one 'dd_idx' and only need one call to raid5_compute_sector.
6641 int dd_idx;
6649 0, &dd_idx, NULL);
6670 if (!add_stripe_bio(sh, raid_bio, dd_idx, 0, 0)) {
6677 set_bit(R5_ReadNoMerge, &sh->dev[dd_idx].flags);