Lines Matching defs:bio
217 static bool linear_make_request(struct mddev *mddev, struct bio *bio)
222 sector_t bio_sector = bio->bi_iter.bi_sector;
224 if (unlikely(bio->bi_opf & REQ_PREFLUSH)
225 && md_flush_request(mddev, bio))
238 bio_io_error(bio);
242 if (unlikely(bio_end_sector(bio) > end_sector)) {
243 /* This bio crosses a device boundary, so we have to split it */
244 struct bio *split = bio_split(bio, end_sector - bio_sector,
246 bio_chain(split, bio);
247 submit_bio_noacct(bio);
248 bio = split;
251 bio_set_dev(bio, tmp_dev->rdev->bdev);
252 bio->bi_iter.bi_sector = bio->bi_iter.bi_sector -
255 if (unlikely((bio_op(bio) == REQ_OP_DISCARD) &&
256 !blk_queue_discard(bio->bi_disk->queue))) {
258 bio_endio(bio);
261 trace_block_bio_remap(bio->bi_disk->queue,
262 bio, disk_devt(mddev->gendisk),
264 mddev_check_writesame(mddev, bio);
265 mddev_check_write_zeroes(mddev, bio);
266 submit_bio_noacct(bio);
273 (unsigned long long)bio->bi_iter.bi_sector,
277 bio_io_error(bio);