r1_bio            132 drivers/md/raid1.c 	struct r1bio *r1_bio;
r1_bio            138 drivers/md/raid1.c 	r1_bio = r1bio_pool_alloc(gfp_flags, pi);
r1_bio            139 drivers/md/raid1.c 	if (!r1_bio)
r1_bio            154 drivers/md/raid1.c 		r1_bio->bios[j] = bio;
r1_bio            169 drivers/md/raid1.c 		bio = r1_bio->bios[j];
r1_bio            179 drivers/md/raid1.c 		rp->raid_bio = r1_bio;
r1_bio            183 drivers/md/raid1.c 	r1_bio->master_bio = NULL;
r1_bio            185 drivers/md/raid1.c 	return r1_bio;
r1_bio            193 drivers/md/raid1.c 		bio_put(r1_bio->bios[j]);
r1_bio            197 drivers/md/raid1.c 	rbio_pool_free(r1_bio, data);
r1_bio            220 drivers/md/raid1.c static void put_all_bios(struct r1conf *conf, struct r1bio *r1_bio)
r1_bio            225 drivers/md/raid1.c 		struct bio **bio = r1_bio->bios + i;
r1_bio            232 drivers/md/raid1.c static void free_r1bio(struct r1bio *r1_bio)
r1_bio            234 drivers/md/raid1.c 	struct r1conf *conf = r1_bio->mddev->private;
r1_bio            236 drivers/md/raid1.c 	put_all_bios(conf, r1_bio);
r1_bio            237 drivers/md/raid1.c 	mempool_free(r1_bio, &conf->r1bio_pool);
r1_bio            240 drivers/md/raid1.c static void put_buf(struct r1bio *r1_bio)
r1_bio            242 drivers/md/raid1.c 	struct r1conf *conf = r1_bio->mddev->private;
r1_bio            243 drivers/md/raid1.c 	sector_t sect = r1_bio->sector;
r1_bio            247 drivers/md/raid1.c 		struct bio *bio = r1_bio->bios[i];
r1_bio            249 drivers/md/raid1.c 			rdev_dec_pending(conf->mirrors[i].rdev, r1_bio->mddev);
r1_bio            252 drivers/md/raid1.c 	mempool_free(r1_bio, &conf->r1buf_pool);
r1_bio            257 drivers/md/raid1.c static void reschedule_retry(struct r1bio *r1_bio)
r1_bio            260 drivers/md/raid1.c 	struct mddev *mddev = r1_bio->mddev;
r1_bio            264 drivers/md/raid1.c 	idx = sector_to_idx(r1_bio->sector);
r1_bio            266 drivers/md/raid1.c 	list_add(&r1_bio->retry_list, &conf->retry_list);
r1_bio            279 drivers/md/raid1.c static void call_bio_endio(struct r1bio *r1_bio)
r1_bio            281 drivers/md/raid1.c 	struct bio *bio = r1_bio->master_bio;
r1_bio            282 drivers/md/raid1.c 	struct r1conf *conf = r1_bio->mddev->private;
r1_bio            284 drivers/md/raid1.c 	if (!test_bit(R1BIO_Uptodate, &r1_bio->state))
r1_bio            292 drivers/md/raid1.c 	allow_barrier(conf, r1_bio->sector);
r1_bio            295 drivers/md/raid1.c static void raid_end_bio_io(struct r1bio *r1_bio)
r1_bio            297 drivers/md/raid1.c 	struct bio *bio = r1_bio->master_bio;
r1_bio            300 drivers/md/raid1.c 	if (!test_and_set_bit(R1BIO_Returned, &r1_bio->state)) {
r1_bio            306 drivers/md/raid1.c 		call_bio_endio(r1_bio);
r1_bio            308 drivers/md/raid1.c 	free_r1bio(r1_bio);
r1_bio            314 drivers/md/raid1.c static inline void update_head_pos(int disk, struct r1bio *r1_bio)
r1_bio            316 drivers/md/raid1.c 	struct r1conf *conf = r1_bio->mddev->private;
r1_bio            319 drivers/md/raid1.c 		r1_bio->sector + (r1_bio->sectors);
r1_bio            325 drivers/md/raid1.c static int find_bio_disk(struct r1bio *r1_bio, struct bio *bio)
r1_bio            328 drivers/md/raid1.c 	struct r1conf *conf = r1_bio->mddev->private;
r1_bio            332 drivers/md/raid1.c 		if (r1_bio->bios[mirror] == bio)
r1_bio            336 drivers/md/raid1.c 	update_head_pos(mirror, r1_bio);
r1_bio            344 drivers/md/raid1.c 	struct r1bio *r1_bio = bio->bi_private;
r1_bio            345 drivers/md/raid1.c 	struct r1conf *conf = r1_bio->mddev->private;
r1_bio            346 drivers/md/raid1.c 	struct md_rdev *rdev = conf->mirrors[r1_bio->read_disk].rdev;
r1_bio            351 drivers/md/raid1.c 	update_head_pos(r1_bio->read_disk, r1_bio);
r1_bio            354 drivers/md/raid1.c 		set_bit(R1BIO_Uptodate, &r1_bio->state);
r1_bio            356 drivers/md/raid1.c 		 test_bit(R1BIO_FailFast, &r1_bio->state))
r1_bio            367 drivers/md/raid1.c 		if (r1_bio->mddev->degraded == conf->raid_disks ||
r1_bio            368 drivers/md/raid1.c 		    (r1_bio->mddev->degraded == conf->raid_disks-1 &&
r1_bio            375 drivers/md/raid1.c 		raid_end_bio_io(r1_bio);
r1_bio            385 drivers/md/raid1.c 				   (unsigned long long)r1_bio->sector);
r1_bio            386 drivers/md/raid1.c 		set_bit(R1BIO_ReadError, &r1_bio->state);
r1_bio            387 drivers/md/raid1.c 		reschedule_retry(r1_bio);
r1_bio            392 drivers/md/raid1.c static void close_write(struct r1bio *r1_bio)
r1_bio            395 drivers/md/raid1.c 	if (test_bit(R1BIO_BehindIO, &r1_bio->state)) {
r1_bio            396 drivers/md/raid1.c 		bio_free_pages(r1_bio->behind_master_bio);
r1_bio            397 drivers/md/raid1.c 		bio_put(r1_bio->behind_master_bio);
r1_bio            398 drivers/md/raid1.c 		r1_bio->behind_master_bio = NULL;
r1_bio            401 drivers/md/raid1.c 	md_bitmap_endwrite(r1_bio->mddev->bitmap, r1_bio->sector,
r1_bio            402 drivers/md/raid1.c 			   r1_bio->sectors,
r1_bio            403 drivers/md/raid1.c 			   !test_bit(R1BIO_Degraded, &r1_bio->state),
r1_bio            404 drivers/md/raid1.c 			   test_bit(R1BIO_BehindIO, &r1_bio->state));
r1_bio            405 drivers/md/raid1.c 	md_write_end(r1_bio->mddev);
r1_bio            408 drivers/md/raid1.c static void r1_bio_write_done(struct r1bio *r1_bio)
r1_bio            410 drivers/md/raid1.c 	if (!atomic_dec_and_test(&r1_bio->remaining))
r1_bio            413 drivers/md/raid1.c 	if (test_bit(R1BIO_WriteError, &r1_bio->state))
r1_bio            414 drivers/md/raid1.c 		reschedule_retry(r1_bio);
r1_bio            416 drivers/md/raid1.c 		close_write(r1_bio);
r1_bio            417 drivers/md/raid1.c 		if (test_bit(R1BIO_MadeGood, &r1_bio->state))
r1_bio            418 drivers/md/raid1.c 			reschedule_retry(r1_bio);
r1_bio            420 drivers/md/raid1.c 			raid_end_bio_io(r1_bio);
r1_bio            426 drivers/md/raid1.c 	struct r1bio *r1_bio = bio->bi_private;
r1_bio            427 drivers/md/raid1.c 	int behind = test_bit(R1BIO_BehindIO, &r1_bio->state);
r1_bio            428 drivers/md/raid1.c 	struct r1conf *conf = r1_bio->mddev->private;
r1_bio            430 drivers/md/raid1.c 	int mirror = find_bio_disk(r1_bio, bio);
r1_bio            449 drivers/md/raid1.c 			md_error(r1_bio->mddev, rdev);
r1_bio            459 drivers/md/raid1.c 			set_bit(R1BIO_WriteError, &r1_bio->state);
r1_bio            462 drivers/md/raid1.c 			r1_bio->bios[mirror] = NULL;
r1_bio            479 drivers/md/raid1.c 		r1_bio->bios[mirror] = NULL;
r1_bio            491 drivers/md/raid1.c 			set_bit(R1BIO_Uptodate, &r1_bio->state);
r1_bio            494 drivers/md/raid1.c 		if (is_badblock(rdev, r1_bio->sector, r1_bio->sectors,
r1_bio            496 drivers/md/raid1.c 			r1_bio->bios[mirror] = IO_MADE_GOOD;
r1_bio            497 drivers/md/raid1.c 			set_bit(R1BIO_MadeGood, &r1_bio->state);
r1_bio            503 drivers/md/raid1.c 			sector_t lo = r1_bio->sector;
r1_bio            504 drivers/md/raid1.c 			sector_t hi = r1_bio->sector + r1_bio->sectors;
r1_bio            509 drivers/md/raid1.c 			atomic_dec(&r1_bio->behind_remaining);
r1_bio            518 drivers/md/raid1.c 		if (atomic_read(&r1_bio->behind_remaining) >= (atomic_read(&r1_bio->remaining)-1) &&
r1_bio            519 drivers/md/raid1.c 		    test_bit(R1BIO_Uptodate, &r1_bio->state)) {
r1_bio            521 drivers/md/raid1.c 			if (!test_and_set_bit(R1BIO_Returned, &r1_bio->state)) {
r1_bio            522 drivers/md/raid1.c 				struct bio *mbio = r1_bio->master_bio;
r1_bio            527 drivers/md/raid1.c 				call_bio_endio(r1_bio);
r1_bio            531 drivers/md/raid1.c 	if (r1_bio->bios[mirror] == NULL)
r1_bio            538 drivers/md/raid1.c 	r1_bio_write_done(r1_bio);
r1_bio            577 drivers/md/raid1.c static int read_balance(struct r1conf *conf, struct r1bio *r1_bio, int *max_sectors)
r1_bio            579 drivers/md/raid1.c 	const sector_t this_sector = r1_bio->sector;
r1_bio            598 drivers/md/raid1.c 	sectors = r1_bio->sectors;
r1_bio            607 drivers/md/raid1.c 	clear_bit(R1BIO_FailFast, &r1_bio->state);
r1_bio            625 drivers/md/raid1.c 		if (r1_bio->bios[disk] == IO_BLOCKED
r1_bio            686 drivers/md/raid1.c 			set_bit(R1BIO_FailFast, &r1_bio->state);
r1_bio           1111 drivers/md/raid1.c static void alloc_behind_master_bio(struct r1bio *r1_bio,
r1_bio           1119 drivers/md/raid1.c 	behind_bio = bio_alloc_mddev(GFP_NOIO, vcnt, r1_bio->mddev);
r1_bio           1147 drivers/md/raid1.c 	r1_bio->behind_master_bio = behind_bio;
r1_bio           1148 drivers/md/raid1.c 	set_bit(R1BIO_BehindIO, &r1_bio->state);
r1_bio           1190 drivers/md/raid1.c static void init_r1bio(struct r1bio *r1_bio, struct mddev *mddev, struct bio *bio)
r1_bio           1192 drivers/md/raid1.c 	r1_bio->master_bio = bio;
r1_bio           1193 drivers/md/raid1.c 	r1_bio->sectors = bio_sectors(bio);
r1_bio           1194 drivers/md/raid1.c 	r1_bio->state = 0;
r1_bio           1195 drivers/md/raid1.c 	r1_bio->mddev = mddev;
r1_bio           1196 drivers/md/raid1.c 	r1_bio->sector = bio->bi_iter.bi_sector;
r1_bio           1203 drivers/md/raid1.c 	struct r1bio *r1_bio;
r1_bio           1205 drivers/md/raid1.c 	r1_bio = mempool_alloc(&conf->r1bio_pool, GFP_NOIO);
r1_bio           1207 drivers/md/raid1.c 	memset(r1_bio->bios, 0, conf->raid_disks * sizeof(r1_bio->bios[0]));
r1_bio           1208 drivers/md/raid1.c 	init_r1bio(r1_bio, mddev, bio);
r1_bio           1209 drivers/md/raid1.c 	return r1_bio;
r1_bio           1213 drivers/md/raid1.c 			       int max_read_sectors, struct r1bio *r1_bio)
r1_bio           1223 drivers/md/raid1.c 	bool print_msg = !!r1_bio;
r1_bio           1231 drivers/md/raid1.c 	gfp_t gfp = r1_bio ? (GFP_NOIO | __GFP_HIGH) : GFP_NOIO;
r1_bio           1237 drivers/md/raid1.c 		rdev = rcu_dereference(conf->mirrors[r1_bio->read_disk].rdev);
r1_bio           1251 drivers/md/raid1.c 	if (!r1_bio)
r1_bio           1252 drivers/md/raid1.c 		r1_bio = alloc_r1bio(mddev, bio);
r1_bio           1254 drivers/md/raid1.c 		init_r1bio(r1_bio, mddev, bio);
r1_bio           1255 drivers/md/raid1.c 	r1_bio->sectors = max_read_sectors;
r1_bio           1261 drivers/md/raid1.c 	rdisk = read_balance(conf, r1_bio, &max_sectors);
r1_bio           1269 drivers/md/raid1.c 					    (unsigned long long)r1_bio->sector);
r1_bio           1271 drivers/md/raid1.c 		raid_end_bio_io(r1_bio);
r1_bio           1279 drivers/md/raid1.c 				    (unsigned long long)r1_bio->sector,
r1_bio           1299 drivers/md/raid1.c 		r1_bio->master_bio = bio;
r1_bio           1300 drivers/md/raid1.c 		r1_bio->sectors = max_sectors;
r1_bio           1303 drivers/md/raid1.c 	r1_bio->read_disk = rdisk;
r1_bio           1307 drivers/md/raid1.c 	r1_bio->bios[rdisk] = read_bio;
r1_bio           1309 drivers/md/raid1.c 	read_bio->bi_iter.bi_sector = r1_bio->sector +
r1_bio           1315 drivers/md/raid1.c 	    test_bit(R1BIO_FailFast, &r1_bio->state))
r1_bio           1317 drivers/md/raid1.c 	read_bio->bi_private = r1_bio;
r1_bio           1321 drivers/md/raid1.c 				disk_devt(mddev->gendisk), r1_bio->sector);
r1_bio           1330 drivers/md/raid1.c 	struct r1bio *r1_bio;
r1_bio           1364 drivers/md/raid1.c 	r1_bio = alloc_r1bio(mddev, bio);
r1_bio           1365 drivers/md/raid1.c 	r1_bio->sectors = max_write_sectors;
r1_bio           1388 drivers/md/raid1.c 	max_sectors = r1_bio->sectors;
r1_bio           1396 drivers/md/raid1.c 		r1_bio->bios[i] = NULL;
r1_bio           1399 drivers/md/raid1.c 				set_bit(R1BIO_Degraded, &r1_bio->state);
r1_bio           1409 drivers/md/raid1.c 			is_bad = is_badblock(rdev, r1_bio->sector, max_sectors,
r1_bio           1418 drivers/md/raid1.c 			if (is_bad && first_bad <= r1_bio->sector) {
r1_bio           1420 drivers/md/raid1.c 				bad_sectors -= (r1_bio->sector - first_bad);
r1_bio           1440 drivers/md/raid1.c 				int good_sectors = first_bad - r1_bio->sector;
r1_bio           1445 drivers/md/raid1.c 		r1_bio->bios[i] = bio;
r1_bio           1454 drivers/md/raid1.c 			if (r1_bio->bios[j])
r1_bio           1456 drivers/md/raid1.c 		r1_bio->state = 0;
r1_bio           1470 drivers/md/raid1.c 		r1_bio->master_bio = bio;
r1_bio           1471 drivers/md/raid1.c 		r1_bio->sectors = max_sectors;
r1_bio           1474 drivers/md/raid1.c 	atomic_set(&r1_bio->remaining, 1);
r1_bio           1475 drivers/md/raid1.c 	atomic_set(&r1_bio->behind_remaining, 0);
r1_bio           1481 drivers/md/raid1.c 		if (!r1_bio->bios[i])
r1_bio           1493 drivers/md/raid1.c 				alloc_behind_master_bio(r1_bio, bio);
r1_bio           1496 drivers/md/raid1.c 			md_bitmap_startwrite(bitmap, r1_bio->sector, r1_bio->sectors,
r1_bio           1497 drivers/md/raid1.c 					     test_bit(R1BIO_BehindIO, &r1_bio->state));
r1_bio           1501 drivers/md/raid1.c 		if (r1_bio->behind_master_bio)
r1_bio           1502 drivers/md/raid1.c 			mbio = bio_clone_fast(r1_bio->behind_master_bio,
r1_bio           1507 drivers/md/raid1.c 		if (r1_bio->behind_master_bio) {
r1_bio           1511 drivers/md/raid1.c 				sector_t lo = r1_bio->sector;
r1_bio           1512 drivers/md/raid1.c 				sector_t hi = r1_bio->sector + r1_bio->sectors;
r1_bio           1518 drivers/md/raid1.c 				atomic_inc(&r1_bio->behind_remaining);
r1_bio           1521 drivers/md/raid1.c 		r1_bio->bios[i] = mbio;
r1_bio           1523 drivers/md/raid1.c 		mbio->bi_iter.bi_sector	= (r1_bio->sector +
r1_bio           1532 drivers/md/raid1.c 		mbio->bi_private = r1_bio;
r1_bio           1534 drivers/md/raid1.c 		atomic_inc(&r1_bio->remaining);
r1_bio           1539 drivers/md/raid1.c 					      r1_bio->sector);
r1_bio           1560 drivers/md/raid1.c 	r1_bio_write_done(r1_bio);
r1_bio           1878 drivers/md/raid1.c 	struct r1bio *r1_bio = get_resync_r1bio(bio);
r1_bio           1880 drivers/md/raid1.c 	update_head_pos(r1_bio->read_disk, r1_bio);
r1_bio           1888 drivers/md/raid1.c 		set_bit(R1BIO_Uptodate, &r1_bio->state);
r1_bio           1890 drivers/md/raid1.c 	if (atomic_dec_and_test(&r1_bio->remaining))
r1_bio           1891 drivers/md/raid1.c 		reschedule_retry(r1_bio);
r1_bio           1894 drivers/md/raid1.c static void abort_sync_write(struct mddev *mddev, struct r1bio *r1_bio)
r1_bio           1897 drivers/md/raid1.c 	sector_t s = r1_bio->sector;
r1_bio           1898 drivers/md/raid1.c 	long sectors_to_go = r1_bio->sectors;
r1_bio           1908 drivers/md/raid1.c static void put_sync_write_buf(struct r1bio *r1_bio, int uptodate)
r1_bio           1910 drivers/md/raid1.c 	if (atomic_dec_and_test(&r1_bio->remaining)) {
r1_bio           1911 drivers/md/raid1.c 		struct mddev *mddev = r1_bio->mddev;
r1_bio           1912 drivers/md/raid1.c 		int s = r1_bio->sectors;
r1_bio           1914 drivers/md/raid1.c 		if (test_bit(R1BIO_MadeGood, &r1_bio->state) ||
r1_bio           1915 drivers/md/raid1.c 		    test_bit(R1BIO_WriteError, &r1_bio->state))
r1_bio           1916 drivers/md/raid1.c 			reschedule_retry(r1_bio);
r1_bio           1918 drivers/md/raid1.c 			put_buf(r1_bio);
r1_bio           1927 drivers/md/raid1.c 	struct r1bio *r1_bio = get_resync_r1bio(bio);
r1_bio           1928 drivers/md/raid1.c 	struct mddev *mddev = r1_bio->mddev;
r1_bio           1932 drivers/md/raid1.c 	struct md_rdev *rdev = conf->mirrors[find_bio_disk(r1_bio, bio)].rdev;
r1_bio           1935 drivers/md/raid1.c 		abort_sync_write(mddev, r1_bio);
r1_bio           1940 drivers/md/raid1.c 		set_bit(R1BIO_WriteError, &r1_bio->state);
r1_bio           1941 drivers/md/raid1.c 	} else if (is_badblock(rdev, r1_bio->sector, r1_bio->sectors,
r1_bio           1943 drivers/md/raid1.c 		   !is_badblock(conf->mirrors[r1_bio->read_disk].rdev,
r1_bio           1944 drivers/md/raid1.c 				r1_bio->sector,
r1_bio           1945 drivers/md/raid1.c 				r1_bio->sectors,
r1_bio           1948 drivers/md/raid1.c 		set_bit(R1BIO_MadeGood, &r1_bio->state);
r1_bio           1950 drivers/md/raid1.c 	put_sync_write_buf(r1_bio, uptodate);
r1_bio           1972 drivers/md/raid1.c static int fix_sync_read_error(struct r1bio *r1_bio)
r1_bio           1985 drivers/md/raid1.c 	struct mddev *mddev = r1_bio->mddev;
r1_bio           1987 drivers/md/raid1.c 	struct bio *bio = r1_bio->bios[r1_bio->read_disk];
r1_bio           1989 drivers/md/raid1.c 	sector_t sect = r1_bio->sector;
r1_bio           1990 drivers/md/raid1.c 	int sectors = r1_bio->sectors;
r1_bio           1994 drivers/md/raid1.c 	rdev = conf->mirrors[r1_bio->read_disk].rdev;
r1_bio           2008 drivers/md/raid1.c 		int d = r1_bio->read_disk;
r1_bio           2015 drivers/md/raid1.c 			if (r1_bio->bios[d]->bi_end_io == end_sync_read) {
r1_bio           2031 drivers/md/raid1.c 		} while (!success && d != r1_bio->read_disk);
r1_bio           2043 drivers/md/raid1.c 					    (unsigned long long)r1_bio->sector);
r1_bio           2055 drivers/md/raid1.c 				md_done_sync(mddev, r1_bio->sectors, 0);
r1_bio           2056 drivers/md/raid1.c 				put_buf(r1_bio);
r1_bio           2068 drivers/md/raid1.c 		while (d != r1_bio->read_disk) {
r1_bio           2072 drivers/md/raid1.c 			if (r1_bio->bios[d]->bi_end_io != end_sync_read)
r1_bio           2078 drivers/md/raid1.c 				r1_bio->bios[d]->bi_end_io = NULL;
r1_bio           2083 drivers/md/raid1.c 		while (d != r1_bio->read_disk) {
r1_bio           2087 drivers/md/raid1.c 			if (r1_bio->bios[d]->bi_end_io != end_sync_read)
r1_bio           2099 drivers/md/raid1.c 	set_bit(R1BIO_Uptodate, &r1_bio->state);
r1_bio           2104 drivers/md/raid1.c static void process_checks(struct r1bio *r1_bio)
r1_bio           2113 drivers/md/raid1.c 	struct mddev *mddev = r1_bio->mddev;
r1_bio           2120 drivers/md/raid1.c 	vcnt = (r1_bio->sectors + PAGE_SIZE / 512 - 1) >> (PAGE_SHIFT - 9);
r1_bio           2123 drivers/md/raid1.c 		struct bio *b = r1_bio->bios[i];
r1_bio           2131 drivers/md/raid1.c 		b->bi_iter.bi_sector = r1_bio->sector +
r1_bio           2135 drivers/md/raid1.c 		rp->raid_bio = r1_bio;
r1_bio           2139 drivers/md/raid1.c 		md_bio_reset_resync_pages(b, rp, r1_bio->sectors << 9);
r1_bio           2142 drivers/md/raid1.c 		if (r1_bio->bios[primary]->bi_end_io == end_sync_read &&
r1_bio           2143 drivers/md/raid1.c 		    !r1_bio->bios[primary]->bi_status) {
r1_bio           2144 drivers/md/raid1.c 			r1_bio->bios[primary]->bi_end_io = NULL;
r1_bio           2148 drivers/md/raid1.c 	r1_bio->read_disk = primary;
r1_bio           2151 drivers/md/raid1.c 		struct bio *pbio = r1_bio->bios[primary];
r1_bio           2152 drivers/md/raid1.c 		struct bio *sbio = r1_bio->bios[i];
r1_bio           2178 drivers/md/raid1.c 			atomic64_add(r1_bio->sectors, &mddev->resync_mismatches);
r1_bio           2191 drivers/md/raid1.c static void sync_request_write(struct mddev *mddev, struct r1bio *r1_bio)
r1_bio           2198 drivers/md/raid1.c 	if (!test_bit(R1BIO_Uptodate, &r1_bio->state))
r1_bio           2200 drivers/md/raid1.c 		if (!fix_sync_read_error(r1_bio))
r1_bio           2204 drivers/md/raid1.c 		process_checks(r1_bio);
r1_bio           2209 drivers/md/raid1.c 	atomic_set(&r1_bio->remaining, 1);
r1_bio           2211 drivers/md/raid1.c 		wbio = r1_bio->bios[i];
r1_bio           2214 drivers/md/raid1.c 		     (i == r1_bio->read_disk ||
r1_bio           2218 drivers/md/raid1.c 			abort_sync_write(mddev, r1_bio);
r1_bio           2227 drivers/md/raid1.c 		atomic_inc(&r1_bio->remaining);
r1_bio           2233 drivers/md/raid1.c 	put_sync_write_buf(r1_bio, 1);
r1_bio           2340 drivers/md/raid1.c static int narrow_write_error(struct r1bio *r1_bio, int i)
r1_bio           2342 drivers/md/raid1.c 	struct mddev *mddev = r1_bio->mddev;
r1_bio           2360 drivers/md/raid1.c 	int sect_to_write = r1_bio->sectors;
r1_bio           2368 drivers/md/raid1.c 	sector = r1_bio->sector;
r1_bio           2379 drivers/md/raid1.c 		if (test_bit(R1BIO_BehindIO, &r1_bio->state)) {
r1_bio           2380 drivers/md/raid1.c 			wbio = bio_clone_fast(r1_bio->behind_master_bio,
r1_bio           2384 drivers/md/raid1.c 			wbio = bio_clone_fast(r1_bio->master_bio, GFP_NOIO,
r1_bio           2389 drivers/md/raid1.c 		wbio->bi_iter.bi_sector = r1_bio->sector;
r1_bio           2390 drivers/md/raid1.c 		wbio->bi_iter.bi_size = r1_bio->sectors << 9;
r1_bio           2392 drivers/md/raid1.c 		bio_trim(wbio, sector - r1_bio->sector, sectors);
r1_bio           2410 drivers/md/raid1.c static void handle_sync_write_finished(struct r1conf *conf, struct r1bio *r1_bio)
r1_bio           2413 drivers/md/raid1.c 	int s = r1_bio->sectors;
r1_bio           2416 drivers/md/raid1.c 		struct bio *bio = r1_bio->bios[m];
r1_bio           2420 drivers/md/raid1.c 		    test_bit(R1BIO_MadeGood, &r1_bio->state)) {
r1_bio           2421 drivers/md/raid1.c 			rdev_clear_badblocks(rdev, r1_bio->sector, s, 0);
r1_bio           2424 drivers/md/raid1.c 		    test_bit(R1BIO_WriteError, &r1_bio->state)) {
r1_bio           2425 drivers/md/raid1.c 			if (!rdev_set_badblocks(rdev, r1_bio->sector, s, 0))
r1_bio           2429 drivers/md/raid1.c 	put_buf(r1_bio);
r1_bio           2433 drivers/md/raid1.c static void handle_write_finished(struct r1conf *conf, struct r1bio *r1_bio)
r1_bio           2439 drivers/md/raid1.c 		if (r1_bio->bios[m] == IO_MADE_GOOD) {
r1_bio           2442 drivers/md/raid1.c 					     r1_bio->sector,
r1_bio           2443 drivers/md/raid1.c 					     r1_bio->sectors, 0);
r1_bio           2445 drivers/md/raid1.c 		} else if (r1_bio->bios[m] != NULL) {
r1_bio           2451 drivers/md/raid1.c 			if (!narrow_write_error(r1_bio, m)) {
r1_bio           2455 drivers/md/raid1.c 				set_bit(R1BIO_Degraded, &r1_bio->state);
r1_bio           2462 drivers/md/raid1.c 		list_add(&r1_bio->retry_list, &conf->bio_end_io_list);
r1_bio           2463 drivers/md/raid1.c 		idx = sector_to_idx(r1_bio->sector);
r1_bio           2473 drivers/md/raid1.c 		if (test_bit(R1BIO_WriteError, &r1_bio->state))
r1_bio           2474 drivers/md/raid1.c 			close_write(r1_bio);
r1_bio           2475 drivers/md/raid1.c 		raid_end_bio_io(r1_bio);
r1_bio           2479 drivers/md/raid1.c static void handle_read_error(struct r1conf *conf, struct r1bio *r1_bio)
r1_bio           2485 drivers/md/raid1.c 	clear_bit(R1BIO_ReadError, &r1_bio->state);
r1_bio           2495 drivers/md/raid1.c 	bio = r1_bio->bios[r1_bio->read_disk];
r1_bio           2497 drivers/md/raid1.c 	r1_bio->bios[r1_bio->read_disk] = NULL;
r1_bio           2499 drivers/md/raid1.c 	rdev = conf->mirrors[r1_bio->read_disk].rdev;
r1_bio           2503 drivers/md/raid1.c 		fix_read_error(conf, r1_bio->read_disk,
r1_bio           2504 drivers/md/raid1.c 			       r1_bio->sector, r1_bio->sectors);
r1_bio           2509 drivers/md/raid1.c 		r1_bio->bios[r1_bio->read_disk] = IO_BLOCKED;
r1_bio           2513 drivers/md/raid1.c 	allow_barrier(conf, r1_bio->sector);
r1_bio           2514 drivers/md/raid1.c 	bio = r1_bio->master_bio;
r1_bio           2517 drivers/md/raid1.c 	r1_bio->state = 0;
r1_bio           2518 drivers/md/raid1.c 	raid1_read_request(mddev, bio, r1_bio->sectors, r1_bio);
r1_bio           2524 drivers/md/raid1.c 	struct r1bio *r1_bio;
r1_bio           2541 drivers/md/raid1.c 			r1_bio = list_first_entry(&tmp, struct r1bio,
r1_bio           2543 drivers/md/raid1.c 			list_del(&r1_bio->retry_list);
r1_bio           2544 drivers/md/raid1.c 			idx = sector_to_idx(r1_bio->sector);
r1_bio           2547 drivers/md/raid1.c 				set_bit(R1BIO_Degraded, &r1_bio->state);
r1_bio           2548 drivers/md/raid1.c 			if (test_bit(R1BIO_WriteError, &r1_bio->state))
r1_bio           2549 drivers/md/raid1.c 				close_write(r1_bio);
r1_bio           2550 drivers/md/raid1.c 			raid_end_bio_io(r1_bio);
r1_bio           2564 drivers/md/raid1.c 		r1_bio = list_entry(head->prev, struct r1bio, retry_list);
r1_bio           2566 drivers/md/raid1.c 		idx = sector_to_idx(r1_bio->sector);
r1_bio           2570 drivers/md/raid1.c 		mddev = r1_bio->mddev;
r1_bio           2572 drivers/md/raid1.c 		if (test_bit(R1BIO_IsSync, &r1_bio->state)) {
r1_bio           2573 drivers/md/raid1.c 			if (test_bit(R1BIO_MadeGood, &r1_bio->state) ||
r1_bio           2574 drivers/md/raid1.c 			    test_bit(R1BIO_WriteError, &r1_bio->state))
r1_bio           2575 drivers/md/raid1.c 				handle_sync_write_finished(conf, r1_bio);
r1_bio           2577 drivers/md/raid1.c 				sync_request_write(mddev, r1_bio);
r1_bio           2578 drivers/md/raid1.c 		} else if (test_bit(R1BIO_MadeGood, &r1_bio->state) ||
r1_bio           2579 drivers/md/raid1.c 			   test_bit(R1BIO_WriteError, &r1_bio->state))
r1_bio           2580 drivers/md/raid1.c 			handle_write_finished(conf, r1_bio);
r1_bio           2581 drivers/md/raid1.c 		else if (test_bit(R1BIO_ReadError, &r1_bio->state))
r1_bio           2582 drivers/md/raid1.c 			handle_read_error(conf, r1_bio);
r1_bio           2635 drivers/md/raid1.c 	struct r1bio *r1_bio;
r1_bio           2711 drivers/md/raid1.c 	r1_bio = raid1_alloc_init_r1buf(conf);
r1_bio           2723 drivers/md/raid1.c 	r1_bio->mddev = mddev;
r1_bio           2724 drivers/md/raid1.c 	r1_bio->sector = sector_nr;
r1_bio           2725 drivers/md/raid1.c 	r1_bio->state = 0;
r1_bio           2726 drivers/md/raid1.c 	set_bit(R1BIO_IsSync, &r1_bio->state);
r1_bio           2732 drivers/md/raid1.c 		bio = r1_bio->bios[i];
r1_bio           2795 drivers/md/raid1.c 	r1_bio->read_disk = disk;
r1_bio           2803 drivers/md/raid1.c 			if (r1_bio->bios[i]->bi_end_io == end_sync_write) {
r1_bio           2811 drivers/md/raid1.c 		put_buf(r1_bio);
r1_bio           2845 drivers/md/raid1.c 		put_buf(r1_bio);
r1_bio           2875 drivers/md/raid1.c 			bio = r1_bio->bios[i];
r1_bio           2892 drivers/md/raid1.c 	r1_bio->sectors = nr_sectors;
r1_bio           2908 drivers/md/raid1.c 		atomic_set(&r1_bio->remaining, read_targets);
r1_bio           2910 drivers/md/raid1.c 			bio = r1_bio->bios[i];
r1_bio           2920 drivers/md/raid1.c 		atomic_set(&r1_bio->remaining, 1);
r1_bio           2921 drivers/md/raid1.c 		bio = r1_bio->bios[r1_bio->read_disk];