Lines Matching refs:devs
94 int size = offsetof(struct r10bio, devs[conf->copies]);
151 r10_bio->devs[j].bio = bio;
157 r10_bio->devs[j].repl_bio = bio;
164 struct bio *rbio = r10_bio->devs[j].repl_bio;
171 bio = r10_bio->devs[j].bio;
199 if (r10_bio->devs[j].bio)
200 bio_put(r10_bio->devs[j].bio);
201 if (r10_bio->devs[j].repl_bio)
202 bio_put(r10_bio->devs[j].repl_bio);
218 struct bio *bio = r10bio->devs[j].bio;
226 bio = r10bio->devs[j].repl_bio;
242 struct bio **bio = & r10_bio->devs[i].bio;
246 bio = &r10_bio->devs[i].repl_bio;
317 conf->mirrors[r10_bio->devs[slot].devnum].head_position =
318 r10_bio->devs[slot].addr + (r10_bio->sectors);
331 if (r10_bio->devs[slot].bio == bio)
333 if (r10_bio->devs[slot].repl_bio == bio) {
346 return r10_bio->devs[slot].devnum;
358 rdev = r10_bio->devs[slot].rdev;
479 r10_bio->devs[slot].bio = NULL;
511 r10_bio->devs[slot].addr,
516 r10_bio->devs[slot].repl_bio = IO_MADE_GOOD;
518 r10_bio->devs[slot].bio = IO_MADE_GOOD;
594 r10bio->devs[slot].devnum = d;
595 r10bio->devs[slot].addr = s;
612 r10bio->devs[slot].devnum = d;
613 r10bio->devs[slot].addr = s;
749 if (r10_bio->devs[slot].bio == IO_BLOCKED)
751 disk = r10_bio->devs[slot].devnum;
754 r10_bio->devs[slot].addr + sectors >
768 r10_bio->devs[slot].addr + sectors > rdev->recovery_offset)
771 dev_sector = r10_bio->devs[slot].addr;
827 new_distance = r10_bio->devs[slot].addr;
829 new_distance = abs(r10_bio->devs[slot].addr -
1141 if (slot >= 0 && r10_bio->devs[slot].rdev) {
1157 disk = r10_bio->devs[slot].devnum;
1164 err_rdev = r10_bio->devs[slot].rdev;
1200 r10_bio->devs[slot].bio = read_bio;
1201 r10_bio->devs[slot].rdev = rdev;
1203 read_bio->bi_iter.bi_sector = r10_bio->devs[slot].addr +
1233 int devnum = r10_bio->devs[n_copy].devnum;
1248 r10_bio->devs[n_copy].repl_bio = mbio;
1250 r10_bio->devs[n_copy].bio = mbio;
1252 mbio->bi_iter.bi_sector = (r10_bio->devs[n_copy].addr +
1358 int d = r10_bio->devs[i].devnum;
1385 r10_bio->devs[i].bio = NULL;
1386 r10_bio->devs[i].repl_bio = NULL;
1394 sector_t dev_sector = r10_bio->devs[i].addr;
1434 r10_bio->devs[i].bio = bio;
1438 r10_bio->devs[i].repl_bio = bio;
1450 if (r10_bio->devs[j].bio) {
1451 d = r10_bio->devs[j].devnum;
1454 if (r10_bio->devs[j].repl_bio) {
1456 d = r10_bio->devs[j].devnum;
1491 if (r10_bio->devs[i].bio)
1493 if (r10_bio->devs[i].repl_bio)
1513 memset(r10_bio->devs, 0, sizeof(r10_bio->devs[0]) * conf->copies);
1985 r10_bio->devs[slot].addr,
2023 if (!r10_bio->devs[i].bio->bi_status)
2030 fbio = r10_bio->devs[i].bio;
2042 tbio = r10_bio->devs[i].bio;
2050 d = r10_bio->devs[i].devnum;
2052 if (!r10_bio->devs[i].bio->bi_status) {
2091 tbio->bi_iter.bi_sector = r10_bio->devs[i].addr;
2114 tbio = r10_bio->devs[i].repl_bio;
2117 if (r10_bio->devs[i].bio->bi_end_io != end_sync_write
2118 && r10_bio->devs[i].bio != fbio)
2120 d = r10_bio->devs[i].devnum;
2155 struct bio *bio = r10_bio->devs[0].bio;
2159 int dr = r10_bio->devs[0].devnum;
2160 int dw = r10_bio->devs[1].devnum;
2173 addr = r10_bio->devs[0].addr + sect,
2181 addr = r10_bio->devs[1].addr + sect;
2205 addr = r10_bio->devs[1].addr + sect;
2231 struct bio *wbio = r10_bio->devs[1].bio;
2232 struct bio *wbio2 = r10_bio->devs[1].repl_bio;
2254 d = r10_bio->devs[1].devnum;
2342 int d = r10_bio->devs[r10_bio->read_slot].devnum;
2366 r10_bio->devs[r10_bio->read_slot].bio = IO_BLOCKED;
2384 d = r10_bio->devs[sl].devnum;
2389 is_badblock(rdev, r10_bio->devs[sl].addr + sect, s,
2394 r10_bio->devs[sl].addr +
2415 int dn = r10_bio->devs[r10_bio->read_slot].devnum;
2420 r10_bio->devs[r10_bio->read_slot].addr
2424 r10_bio->devs[r10_bio->read_slot].bio
2439 d = r10_bio->devs[sl].devnum;
2449 r10_bio->devs[sl].addr +
2475 d = r10_bio->devs[sl].devnum;
2485 r10_bio->devs[sl].addr +
2526 struct md_rdev *rdev = conf->mirrors[r10_bio->devs[i].devnum].rdev;
2562 wsector = r10_bio->devs[i].addr + (sector - r10_bio->sector);
2587 struct md_rdev *rdev = r10_bio->devs[slot].rdev;
2597 bio = r10_bio->devs[slot].bio;
2599 r10_bio->devs[slot].bio = NULL;
2602 r10_bio->devs[slot].bio = IO_BLOCKED;
2630 int dev = r10_bio->devs[m].devnum;
2632 if (r10_bio->devs[m].bio == NULL ||
2633 r10_bio->devs[m].bio->bi_end_io == NULL)
2635 if (!r10_bio->devs[m].bio->bi_status) {
2638 r10_bio->devs[m].addr,
2643 r10_bio->devs[m].addr,
2648 if (r10_bio->devs[m].repl_bio == NULL ||
2649 r10_bio->devs[m].repl_bio->bi_end_io == NULL)
2652 if (!r10_bio->devs[m].repl_bio->bi_status) {
2655 r10_bio->devs[m].addr,
2660 r10_bio->devs[m].addr,
2669 int dev = r10_bio->devs[m].devnum;
2670 struct bio *bio = r10_bio->devs[m].bio;
2675 r10_bio->devs[m].addr,
2687 bio = r10_bio->devs[m].repl_bio;
2692 r10_bio->devs[m].addr,
2824 bio = r10bio->devs[i].bio;
2828 bio = r10bio->devs[i].repl_bio;
3142 int d = r10_bio->devs[j].devnum;
3153 sector = r10_bio->devs[j].addr;
3167 bio = r10_bio->devs[0].bio;
3174 from_addr = r10_bio->devs[j].addr;
3182 if (r10_bio->devs[k].devnum == i)
3185 to_addr = r10_bio->devs[k].addr;
3186 r10_bio->devs[0].devnum = d;
3187 r10_bio->devs[0].addr = from_addr;
3188 r10_bio->devs[1].devnum = i;
3189 r10_bio->devs[1].addr = to_addr;
3192 bio = r10_bio->devs[1].bio;
3202 r10_bio->devs[1].bio->bi_end_io = NULL;
3205 bio = r10_bio->devs[1].repl_bio;
3234 if (r10_bio->devs[k].devnum == i)
3240 r10_bio->devs[k].addr,
3246 r10_bio->devs[k].addr,
3270 if (r10_bio->devs[0].bio->bi_opf & MD_FAILFAST) {
3277 int d = r10_bio->devs[j].devnum;
3284 r10_bio->devs[0].bio->bi_opf
3337 int d = r10_bio->devs[i].devnum;
3342 if (r10_bio->devs[i].repl_bio)
3343 r10_bio->devs[i].repl_bio->bi_end_io = NULL;
3345 bio = r10_bio->devs[i].bio;
3353 sector = r10_bio->devs[i].addr;
3386 bio = r10_bio->devs[i].repl_bio;
3389 sector = r10_bio->devs[i].addr;
3404 int d = r10_bio->devs[i].devnum;
3405 if (r10_bio->devs[i].bio->bi_end_io)
3408 if (r10_bio->devs[i].repl_bio &&
3409 r10_bio->devs[i].repl_bio->bi_end_io)
4001 static void *raid10_takeover_raid0(struct mddev *mddev, sector_t size, int devs)
4011 sector_div(size, devs);
4422 * ->devs[x].bio and ->devs[x].repl_bio.
4554 read_bio->bi_iter.bi_sector = (r10_bio->devs[r10_bio->read_slot].addr
4564 r10_bio->read_slot = r10_bio->devs[r10_bio->read_slot].devnum;
4601 int d = r10_bio->devs[s/2].devnum;
4605 b = r10_bio->devs[s/2].repl_bio;
4608 b = r10_bio->devs[s/2].bio;
4614 b->bi_iter.bi_sector = r10_bio->devs[s/2].addr +
4625 pages = get_resync_pages(r10_bio->devs[0].bio)->pages;
4692 int d = r10_bio->devs[s/2].devnum;
4697 b = r10_bio->devs[s/2].repl_bio;
4700 b = r10_bio->devs[s/2].bio;
4758 r10b = kmalloc(struct_size(r10b, devs, conf->copies), GFP_NOIO);
4764 /* reshape IOs share pages from .devs[0].bio */
4765 pages = get_resync_pages(r10_bio->devs[0].bio)->pages;
4780 int d = r10b->devs[slot].devnum;
4788 addr = r10b->devs[slot].addr + idx * PAGE_SIZE;