Lines Matching refs:r1_bio

104 static void r1bio_pool_free(void *r1_bio, void *data)  in r1bio_pool_free()  argument
106 kfree(r1_bio); in r1bio_pool_free()
119 struct r1bio *r1_bio; in r1buf_pool_alloc() local
125 r1_bio = r1bio_pool_alloc(gfp_flags, pi); in r1buf_pool_alloc()
126 if (!r1_bio) in r1buf_pool_alloc()
141 r1_bio->bios[j] = bio; in r1buf_pool_alloc()
156 bio = r1_bio->bios[j]; in r1buf_pool_alloc()
166 rp->raid_bio = r1_bio; in r1buf_pool_alloc()
170 r1_bio->master_bio = NULL; in r1buf_pool_alloc()
172 return r1_bio; in r1buf_pool_alloc()
180 bio_put(r1_bio->bios[j]); in r1buf_pool_alloc()
184 r1bio_pool_free(r1_bio, data); in r1buf_pool_alloc()
207 static void put_all_bios(struct r1conf *conf, struct r1bio *r1_bio) in put_all_bios() argument
212 struct bio **bio = r1_bio->bios + i; in put_all_bios()
219 static void free_r1bio(struct r1bio *r1_bio) in free_r1bio() argument
221 struct r1conf *conf = r1_bio->mddev->private; in free_r1bio()
223 put_all_bios(conf, r1_bio); in free_r1bio()
224 mempool_free(r1_bio, &conf->r1bio_pool); in free_r1bio()
227 static void put_buf(struct r1bio *r1_bio) in put_buf() argument
229 struct r1conf *conf = r1_bio->mddev->private; in put_buf()
230 sector_t sect = r1_bio->sector; in put_buf()
234 struct bio *bio = r1_bio->bios[i]; in put_buf()
236 rdev_dec_pending(conf->mirrors[i].rdev, r1_bio->mddev); in put_buf()
239 mempool_free(r1_bio, &conf->r1buf_pool); in put_buf()
244 static void reschedule_retry(struct r1bio *r1_bio) in reschedule_retry() argument
247 struct mddev *mddev = r1_bio->mddev; in reschedule_retry()
251 idx = sector_to_idx(r1_bio->sector); in reschedule_retry()
253 list_add(&r1_bio->retry_list, &conf->retry_list); in reschedule_retry()
266 static void call_bio_endio(struct r1bio *r1_bio) in call_bio_endio() argument
268 struct bio *bio = r1_bio->master_bio; in call_bio_endio()
269 struct r1conf *conf = r1_bio->mddev->private; in call_bio_endio()
271 if (!test_bit(R1BIO_Uptodate, &r1_bio->state)) in call_bio_endio()
279 allow_barrier(conf, r1_bio->sector); in call_bio_endio()
282 static void raid_end_bio_io(struct r1bio *r1_bio) in raid_end_bio_io() argument
284 struct bio *bio = r1_bio->master_bio; in raid_end_bio_io()
287 if (!test_and_set_bit(R1BIO_Returned, &r1_bio->state)) { in raid_end_bio_io()
293 call_bio_endio(r1_bio); in raid_end_bio_io()
295 free_r1bio(r1_bio); in raid_end_bio_io()
301 static inline void update_head_pos(int disk, struct r1bio *r1_bio) in update_head_pos() argument
303 struct r1conf *conf = r1_bio->mddev->private; in update_head_pos()
306 r1_bio->sector + (r1_bio->sectors); in update_head_pos()
312 static int find_bio_disk(struct r1bio *r1_bio, struct bio *bio) in find_bio_disk() argument
315 struct r1conf *conf = r1_bio->mddev->private; in find_bio_disk()
319 if (r1_bio->bios[mirror] == bio) in find_bio_disk()
323 update_head_pos(mirror, r1_bio); in find_bio_disk()
331 struct r1bio *r1_bio = bio->bi_private; in raid1_end_read_request() local
332 struct r1conf *conf = r1_bio->mddev->private; in raid1_end_read_request()
333 struct md_rdev *rdev = conf->mirrors[r1_bio->read_disk].rdev; in raid1_end_read_request()
338 update_head_pos(r1_bio->read_disk, r1_bio); in raid1_end_read_request()
341 set_bit(R1BIO_Uptodate, &r1_bio->state); in raid1_end_read_request()
343 test_bit(R1BIO_FailFast, &r1_bio->state)) in raid1_end_read_request()
354 if (r1_bio->mddev->degraded == conf->raid_disks || in raid1_end_read_request()
355 (r1_bio->mddev->degraded == conf->raid_disks-1 && in raid1_end_read_request()
362 raid_end_bio_io(r1_bio); in raid1_end_read_request()
372 (unsigned long long)r1_bio->sector); in raid1_end_read_request()
373 set_bit(R1BIO_ReadError, &r1_bio->state); in raid1_end_read_request()
374 reschedule_retry(r1_bio); in raid1_end_read_request()
379 static void close_write(struct r1bio *r1_bio) in close_write() argument
382 if (test_bit(R1BIO_BehindIO, &r1_bio->state)) { in close_write()
383 bio_free_pages(r1_bio->behind_master_bio); in close_write()
384 bio_put(r1_bio->behind_master_bio); in close_write()
385 r1_bio->behind_master_bio = NULL; in close_write()
388 md_bitmap_endwrite(r1_bio->mddev->bitmap, r1_bio->sector, in close_write()
389 r1_bio->sectors, in close_write()
390 !test_bit(R1BIO_Degraded, &r1_bio->state), in close_write()
391 test_bit(R1BIO_BehindIO, &r1_bio->state)); in close_write()
392 md_write_end(r1_bio->mddev); in close_write()
395 static void r1_bio_write_done(struct r1bio *r1_bio) in r1_bio_write_done() argument
397 if (!atomic_dec_and_test(&r1_bio->remaining)) in r1_bio_write_done()
400 if (test_bit(R1BIO_WriteError, &r1_bio->state)) in r1_bio_write_done()
401 reschedule_retry(r1_bio); in r1_bio_write_done()
403 close_write(r1_bio); in r1_bio_write_done()
404 if (test_bit(R1BIO_MadeGood, &r1_bio->state)) in r1_bio_write_done()
405 reschedule_retry(r1_bio); in r1_bio_write_done()
407 raid_end_bio_io(r1_bio); in r1_bio_write_done()
413 struct r1bio *r1_bio = bio->bi_private; in raid1_end_write_request() local
414 int behind = test_bit(R1BIO_BehindIO, &r1_bio->state); in raid1_end_write_request()
415 struct r1conf *conf = r1_bio->mddev->private; in raid1_end_write_request()
417 int mirror = find_bio_disk(r1_bio, bio); in raid1_end_write_request()
436 md_error(r1_bio->mddev, rdev); in raid1_end_write_request()
442 set_bit(R1BIO_WriteError, &r1_bio->state); in raid1_end_write_request()
445 r1_bio->bios[mirror] = NULL; in raid1_end_write_request()
449 set_bit(R1BIO_WriteError, &r1_bio->state); in raid1_end_write_request()
464 r1_bio->bios[mirror] = NULL; in raid1_end_write_request()
476 set_bit(R1BIO_Uptodate, &r1_bio->state); in raid1_end_write_request()
479 if (is_badblock(rdev, r1_bio->sector, r1_bio->sectors, in raid1_end_write_request()
481 r1_bio->bios[mirror] = IO_MADE_GOOD; in raid1_end_write_request()
482 set_bit(R1BIO_MadeGood, &r1_bio->state); in raid1_end_write_request()
488 atomic_dec(&r1_bio->behind_remaining); in raid1_end_write_request()
497 if (atomic_read(&r1_bio->behind_remaining) >= (atomic_read(&r1_bio->remaining)-1) && in raid1_end_write_request()
498 test_bit(R1BIO_Uptodate, &r1_bio->state)) { in raid1_end_write_request()
500 if (!test_and_set_bit(R1BIO_Returned, &r1_bio->state)) { in raid1_end_write_request()
501 struct bio *mbio = r1_bio->master_bio; in raid1_end_write_request()
506 call_bio_endio(r1_bio); in raid1_end_write_request()
510 if (r1_bio->bios[mirror] == NULL) in raid1_end_write_request()
517 r1_bio_write_done(r1_bio); in raid1_end_write_request()
556 static int read_balance(struct r1conf *conf, struct r1bio *r1_bio, int *max_sectors) in read_balance() argument
558 const sector_t this_sector = r1_bio->sector; in read_balance()
577 sectors = r1_bio->sectors; in read_balance()
586 clear_bit(R1BIO_FailFast, &r1_bio->state); in read_balance()
604 if (r1_bio->bios[disk] == IO_BLOCKED in read_balance()
665 set_bit(R1BIO_FailFast, &r1_bio->state); in read_balance()
1087 static void alloc_behind_master_bio(struct r1bio *r1_bio, in alloc_behind_master_bio() argument
1095 behind_bio = bio_alloc_mddev(GFP_NOIO, vcnt, r1_bio->mddev); in alloc_behind_master_bio()
1123 r1_bio->behind_master_bio = behind_bio; in alloc_behind_master_bio()
1124 set_bit(R1BIO_BehindIO, &r1_bio->state); in alloc_behind_master_bio()
1166 static void init_r1bio(struct r1bio *r1_bio, struct mddev *mddev, struct bio *bio) in init_r1bio() argument
1168 r1_bio->master_bio = bio; in init_r1bio()
1169 r1_bio->sectors = bio_sectors(bio); in init_r1bio()
1170 r1_bio->state = 0; in init_r1bio()
1171 r1_bio->mddev = mddev; in init_r1bio()
1172 r1_bio->sector = bio->bi_iter.bi_sector; in init_r1bio()
1179 struct r1bio *r1_bio; in alloc_r1bio() local
1181 r1_bio = mempool_alloc(&conf->r1bio_pool, GFP_NOIO); in alloc_r1bio()
1183 memset(r1_bio->bios, 0, conf->raid_disks * sizeof(r1_bio->bios[0])); in alloc_r1bio()
1184 init_r1bio(r1_bio, mddev, bio); in alloc_r1bio()
1185 return r1_bio; in alloc_r1bio()
1189 int max_read_sectors, struct r1bio *r1_bio) in raid1_read_request() argument
1199 bool print_msg = !!r1_bio; in raid1_read_request()
1207 gfp_t gfp = r1_bio ? (GFP_NOIO | __GFP_HIGH) : GFP_NOIO; in raid1_read_request()
1213 rdev = rcu_dereference(conf->mirrors[r1_bio->read_disk].rdev); in raid1_read_request()
1227 if (!r1_bio) in raid1_read_request()
1228 r1_bio = alloc_r1bio(mddev, bio); in raid1_read_request()
1230 init_r1bio(r1_bio, mddev, bio); in raid1_read_request()
1231 r1_bio->sectors = max_read_sectors; in raid1_read_request()
1237 rdisk = read_balance(conf, r1_bio, &max_sectors); in raid1_read_request()
1245 (unsigned long long)r1_bio->sector); in raid1_read_request()
1247 raid_end_bio_io(r1_bio); in raid1_read_request()
1255 (unsigned long long)r1_bio->sector, in raid1_read_request()
1275 r1_bio->master_bio = bio; in raid1_read_request()
1276 r1_bio->sectors = max_sectors; in raid1_read_request()
1279 r1_bio->read_disk = rdisk; in raid1_read_request()
1283 r1_bio->bios[rdisk] = read_bio; in raid1_read_request()
1285 read_bio->bi_iter.bi_sector = r1_bio->sector + in raid1_read_request()
1291 test_bit(R1BIO_FailFast, &r1_bio->state)) in raid1_read_request()
1293 read_bio->bi_private = r1_bio; in raid1_read_request()
1297 disk_devt(mddev->gendisk), r1_bio->sector); in raid1_read_request()
1306 struct r1bio *r1_bio; in raid1_write_request() local
1340 r1_bio = alloc_r1bio(mddev, bio); in raid1_write_request()
1341 r1_bio->sectors = max_write_sectors; in raid1_write_request()
1364 max_sectors = r1_bio->sectors; in raid1_write_request()
1372 r1_bio->bios[i] = NULL; in raid1_write_request()
1375 set_bit(R1BIO_Degraded, &r1_bio->state); in raid1_write_request()
1385 is_bad = is_badblock(rdev, r1_bio->sector, max_sectors, in raid1_write_request()
1394 if (is_bad && first_bad <= r1_bio->sector) { in raid1_write_request()
1396 bad_sectors -= (r1_bio->sector - first_bad); in raid1_write_request()
1416 int good_sectors = first_bad - r1_bio->sector; in raid1_write_request()
1421 r1_bio->bios[i] = bio; in raid1_write_request()
1430 if (r1_bio->bios[j]) in raid1_write_request()
1432 r1_bio->state = 0; in raid1_write_request()
1446 r1_bio->master_bio = bio; in raid1_write_request()
1447 r1_bio->sectors = max_sectors; in raid1_write_request()
1450 atomic_set(&r1_bio->remaining, 1); in raid1_write_request()
1451 atomic_set(&r1_bio->behind_remaining, 0); in raid1_write_request()
1457 if (!r1_bio->bios[i]) in raid1_write_request()
1470 alloc_behind_master_bio(r1_bio, bio); in raid1_write_request()
1473 md_bitmap_startwrite(bitmap, r1_bio->sector, r1_bio->sectors, in raid1_write_request()
1474 test_bit(R1BIO_BehindIO, &r1_bio->state)); in raid1_write_request()
1478 if (r1_bio->behind_master_bio) in raid1_write_request()
1479 mbio = bio_clone_fast(r1_bio->behind_master_bio, in raid1_write_request()
1484 if (r1_bio->behind_master_bio) { in raid1_write_request()
1486 atomic_inc(&r1_bio->behind_remaining); in raid1_write_request()
1489 r1_bio->bios[i] = mbio; in raid1_write_request()
1491 mbio->bi_iter.bi_sector = (r1_bio->sector + in raid1_write_request()
1500 mbio->bi_private = r1_bio; in raid1_write_request()
1502 atomic_inc(&r1_bio->remaining); in raid1_write_request()
1507 r1_bio->sector); in raid1_write_request()
1528 r1_bio_write_done(r1_bio); in raid1_write_request()
1849 struct r1bio *r1_bio = get_resync_r1bio(bio); in end_sync_read() local
1851 update_head_pos(r1_bio->read_disk, r1_bio); in end_sync_read()
1859 set_bit(R1BIO_Uptodate, &r1_bio->state); in end_sync_read()
1861 if (atomic_dec_and_test(&r1_bio->remaining)) in end_sync_read()
1862 reschedule_retry(r1_bio); in end_sync_read()
1868 struct r1bio *r1_bio = get_resync_r1bio(bio); in end_sync_write() local
1869 struct mddev *mddev = r1_bio->mddev; in end_sync_write()
1873 struct md_rdev *rdev = conf->mirrors[find_bio_disk(r1_bio, bio)].rdev; in end_sync_write()
1877 sector_t s = r1_bio->sector; in end_sync_write()
1878 long sectors_to_go = r1_bio->sectors; in end_sync_write()
1889 set_bit(R1BIO_WriteError, &r1_bio->state); in end_sync_write()
1890 } else if (is_badblock(rdev, r1_bio->sector, r1_bio->sectors, in end_sync_write()
1892 !is_badblock(conf->mirrors[r1_bio->read_disk].rdev, in end_sync_write()
1893 r1_bio->sector, in end_sync_write()
1894 r1_bio->sectors, in end_sync_write()
1897 set_bit(R1BIO_MadeGood, &r1_bio->state); in end_sync_write()
1899 if (atomic_dec_and_test(&r1_bio->remaining)) { in end_sync_write()
1900 int s = r1_bio->sectors; in end_sync_write()
1901 if (test_bit(R1BIO_MadeGood, &r1_bio->state) || in end_sync_write()
1902 test_bit(R1BIO_WriteError, &r1_bio->state)) in end_sync_write()
1903 reschedule_retry(r1_bio); in end_sync_write()
1905 put_buf(r1_bio); in end_sync_write()
1930 static int fix_sync_read_error(struct r1bio *r1_bio) in fix_sync_read_error() argument
1943 struct mddev *mddev = r1_bio->mddev; in fix_sync_read_error()
1945 struct bio *bio = r1_bio->bios[r1_bio->read_disk]; in fix_sync_read_error()
1947 sector_t sect = r1_bio->sector; in fix_sync_read_error()
1948 int sectors = r1_bio->sectors; in fix_sync_read_error()
1952 rdev = conf->mirrors[r1_bio->read_disk].rdev; in fix_sync_read_error()
1966 int d = r1_bio->read_disk; in fix_sync_read_error()
1973 if (r1_bio->bios[d]->bi_end_io == end_sync_read) { in fix_sync_read_error()
1989 } while (!success && d != r1_bio->read_disk); in fix_sync_read_error()
2001 (unsigned long long)r1_bio->sector); in fix_sync_read_error()
2013 md_done_sync(mddev, r1_bio->sectors, 0); in fix_sync_read_error()
2014 put_buf(r1_bio); in fix_sync_read_error()
2026 while (d != r1_bio->read_disk) { in fix_sync_read_error()
2030 if (r1_bio->bios[d]->bi_end_io != end_sync_read) in fix_sync_read_error()
2036 r1_bio->bios[d]->bi_end_io = NULL; in fix_sync_read_error()
2041 while (d != r1_bio->read_disk) { in fix_sync_read_error()
2045 if (r1_bio->bios[d]->bi_end_io != end_sync_read) in fix_sync_read_error()
2057 set_bit(R1BIO_Uptodate, &r1_bio->state); in fix_sync_read_error()
2062 static void process_checks(struct r1bio *r1_bio) in process_checks() argument
2071 struct mddev *mddev = r1_bio->mddev; in process_checks()
2078 vcnt = (r1_bio->sectors + PAGE_SIZE / 512 - 1) >> (PAGE_SHIFT - 9); in process_checks()
2081 struct bio *b = r1_bio->bios[i]; in process_checks()
2089 b->bi_iter.bi_sector = r1_bio->sector + in process_checks()
2093 rp->raid_bio = r1_bio; in process_checks()
2097 md_bio_reset_resync_pages(b, rp, r1_bio->sectors << 9); in process_checks()
2100 if (r1_bio->bios[primary]->bi_end_io == end_sync_read && in process_checks()
2101 !r1_bio->bios[primary]->bi_status) { in process_checks()
2102 r1_bio->bios[primary]->bi_end_io = NULL; in process_checks()
2106 r1_bio->read_disk = primary; in process_checks()
2109 struct bio *pbio = r1_bio->bios[primary]; in process_checks()
2110 struct bio *sbio = r1_bio->bios[i]; in process_checks()
2135 atomic64_add(r1_bio->sectors, &mddev->resync_mismatches); in process_checks()
2148 static void sync_request_write(struct mddev *mddev, struct r1bio *r1_bio) in sync_request_write() argument
2155 if (!test_bit(R1BIO_Uptodate, &r1_bio->state)) in sync_request_write()
2157 if (!fix_sync_read_error(r1_bio)) in sync_request_write()
2161 process_checks(r1_bio); in sync_request_write()
2166 atomic_set(&r1_bio->remaining, 1); in sync_request_write()
2168 wbio = r1_bio->bios[i]; in sync_request_write()
2171 (i == r1_bio->read_disk || in sync_request_write()
2182 atomic_inc(&r1_bio->remaining); in sync_request_write()
2188 if (atomic_dec_and_test(&r1_bio->remaining)) { in sync_request_write()
2190 int s = r1_bio->sectors; in sync_request_write()
2191 if (test_bit(R1BIO_MadeGood, &r1_bio->state) || in sync_request_write()
2192 test_bit(R1BIO_WriteError, &r1_bio->state)) in sync_request_write()
2193 reschedule_retry(r1_bio); in sync_request_write()
2195 put_buf(r1_bio); in sync_request_write()
2305 static int narrow_write_error(struct r1bio *r1_bio, int i) in narrow_write_error() argument
2307 struct mddev *mddev = r1_bio->mddev; in narrow_write_error()
2325 int sect_to_write = r1_bio->sectors; in narrow_write_error()
2333 sector = r1_bio->sector; in narrow_write_error()
2344 if (test_bit(R1BIO_BehindIO, &r1_bio->state)) { in narrow_write_error()
2345 wbio = bio_clone_fast(r1_bio->behind_master_bio, in narrow_write_error()
2349 wbio = bio_clone_fast(r1_bio->master_bio, GFP_NOIO, in narrow_write_error()
2354 wbio->bi_iter.bi_sector = r1_bio->sector; in narrow_write_error()
2355 wbio->bi_iter.bi_size = r1_bio->sectors << 9; in narrow_write_error()
2357 bio_trim(wbio, sector - r1_bio->sector, sectors); in narrow_write_error()
2375 static void handle_sync_write_finished(struct r1conf *conf, struct r1bio *r1_bio) in handle_sync_write_finished() argument
2378 int s = r1_bio->sectors; in handle_sync_write_finished()
2381 struct bio *bio = r1_bio->bios[m]; in handle_sync_write_finished()
2385 test_bit(R1BIO_MadeGood, &r1_bio->state)) { in handle_sync_write_finished()
2386 rdev_clear_badblocks(rdev, r1_bio->sector, s, 0); in handle_sync_write_finished()
2389 test_bit(R1BIO_WriteError, &r1_bio->state)) { in handle_sync_write_finished()
2390 if (!rdev_set_badblocks(rdev, r1_bio->sector, s, 0)) in handle_sync_write_finished()
2394 put_buf(r1_bio); in handle_sync_write_finished()
2398 static void handle_write_finished(struct r1conf *conf, struct r1bio *r1_bio) in handle_write_finished() argument
2404 if (r1_bio->bios[m] == IO_MADE_GOOD) { in handle_write_finished()
2407 r1_bio->sector, in handle_write_finished()
2408 r1_bio->sectors, 0); in handle_write_finished()
2410 } else if (r1_bio->bios[m] != NULL) { in handle_write_finished()
2416 if (!narrow_write_error(r1_bio, m)) { in handle_write_finished()
2420 set_bit(R1BIO_Degraded, &r1_bio->state); in handle_write_finished()
2427 list_add(&r1_bio->retry_list, &conf->bio_end_io_list); in handle_write_finished()
2428 idx = sector_to_idx(r1_bio->sector); in handle_write_finished()
2438 if (test_bit(R1BIO_WriteError, &r1_bio->state)) in handle_write_finished()
2439 close_write(r1_bio); in handle_write_finished()
2440 raid_end_bio_io(r1_bio); in handle_write_finished()
2444 static void handle_read_error(struct r1conf *conf, struct r1bio *r1_bio) in handle_read_error() argument
2450 clear_bit(R1BIO_ReadError, &r1_bio->state); in handle_read_error()
2460 bio = r1_bio->bios[r1_bio->read_disk]; in handle_read_error()
2462 r1_bio->bios[r1_bio->read_disk] = NULL; in handle_read_error()
2464 rdev = conf->mirrors[r1_bio->read_disk].rdev; in handle_read_error()
2468 fix_read_error(conf, r1_bio->read_disk, in handle_read_error()
2469 r1_bio->sector, r1_bio->sectors); in handle_read_error()
2474 r1_bio->bios[r1_bio->read_disk] = IO_BLOCKED; in handle_read_error()
2478 allow_barrier(conf, r1_bio->sector); in handle_read_error()
2479 bio = r1_bio->master_bio; in handle_read_error()
2482 r1_bio->state = 0; in handle_read_error()
2483 raid1_read_request(mddev, bio, r1_bio->sectors, r1_bio); in handle_read_error()
2489 struct r1bio *r1_bio; in raid1d() local
2506 r1_bio = list_first_entry(&tmp, struct r1bio, in raid1d()
2508 list_del(&r1_bio->retry_list); in raid1d()
2509 idx = sector_to_idx(r1_bio->sector); in raid1d()
2512 set_bit(R1BIO_Degraded, &r1_bio->state); in raid1d()
2513 if (test_bit(R1BIO_WriteError, &r1_bio->state)) in raid1d()
2514 close_write(r1_bio); in raid1d()
2515 raid_end_bio_io(r1_bio); in raid1d()
2529 r1_bio = list_entry(head->prev, struct r1bio, retry_list); in raid1d()
2531 idx = sector_to_idx(r1_bio->sector); in raid1d()
2535 mddev = r1_bio->mddev; in raid1d()
2537 if (test_bit(R1BIO_IsSync, &r1_bio->state)) { in raid1d()
2538 if (test_bit(R1BIO_MadeGood, &r1_bio->state) || in raid1d()
2539 test_bit(R1BIO_WriteError, &r1_bio->state)) in raid1d()
2540 handle_sync_write_finished(conf, r1_bio); in raid1d()
2542 sync_request_write(mddev, r1_bio); in raid1d()
2543 } else if (test_bit(R1BIO_MadeGood, &r1_bio->state) || in raid1d()
2544 test_bit(R1BIO_WriteError, &r1_bio->state)) in raid1d()
2545 handle_write_finished(conf, r1_bio); in raid1d()
2546 else if (test_bit(R1BIO_ReadError, &r1_bio->state)) in raid1d()
2547 handle_read_error(conf, r1_bio); in raid1d()
2600 struct r1bio *r1_bio; in raid1_sync_request() local
2676 r1_bio = raid1_alloc_init_r1buf(conf); in raid1_sync_request()
2688 r1_bio->mddev = mddev; in raid1_sync_request()
2689 r1_bio->sector = sector_nr; in raid1_sync_request()
2690 r1_bio->state = 0; in raid1_sync_request()
2691 set_bit(R1BIO_IsSync, &r1_bio->state); in raid1_sync_request()
2697 bio = r1_bio->bios[i]; in raid1_sync_request()
2760 r1_bio->read_disk = disk; in raid1_sync_request()
2768 if (r1_bio->bios[i]->bi_end_io == end_sync_write) { in raid1_sync_request()
2776 put_buf(r1_bio); in raid1_sync_request()
2810 put_buf(r1_bio); in raid1_sync_request()
2840 bio = r1_bio->bios[i]; in raid1_sync_request()
2857 r1_bio->sectors = nr_sectors; in raid1_sync_request()
2873 atomic_set(&r1_bio->remaining, read_targets); in raid1_sync_request()
2875 bio = r1_bio->bios[i]; in raid1_sync_request()
2885 atomic_set(&r1_bio->remaining, 1); in raid1_sync_request()
2886 bio = r1_bio->bios[r1_bio->read_disk]; in raid1_sync_request()