Lines Matching refs:bio
217 static void linear_make_request(struct mddev *mddev, struct bio *bio) in linear_make_request() argument
221 struct bio *split; in linear_make_request()
224 if (unlikely(bio->bi_rw & REQ_FLUSH)) { in linear_make_request()
225 md_flush_request(mddev, bio); in linear_make_request()
230 tmp_dev = which_dev(mddev, bio->bi_iter.bi_sector); in linear_make_request()
234 bio->bi_bdev = tmp_dev->rdev->bdev; in linear_make_request()
236 if (unlikely(bio->bi_iter.bi_sector >= end_sector || in linear_make_request()
237 bio->bi_iter.bi_sector < start_sector)) in linear_make_request()
240 if (unlikely(bio_end_sector(bio) > end_sector)) { in linear_make_request()
244 split = bio_split(bio, end_sector - in linear_make_request()
245 bio->bi_iter.bi_sector, in linear_make_request()
247 bio_chain(split, bio); in linear_make_request()
249 split = bio; in linear_make_request()
261 } while (split != bio); in linear_make_request()
269 (unsigned long long)bio->bi_iter.bi_sector, in linear_make_request()
273 bio_io_error(bio); in linear_make_request()