Lines Matching refs:bio
651 struct blk_mq_ctx *ctx, struct bio *bio) in blk_mq_attempt_merge() argument
662 if (!blk_rq_merge_ok(rq, bio)) in blk_mq_attempt_merge()
665 el_ret = blk_try_merge(rq, bio); in blk_mq_attempt_merge()
667 if (bio_attempt_back_merge(q, rq, bio)) { in blk_mq_attempt_merge()
673 if (bio_attempt_front_merge(q, rq, bio)) { in blk_mq_attempt_merge()
1115 static void blk_mq_bio_to_request(struct request *rq, struct bio *bio) in blk_mq_bio_to_request() argument
1117 init_request_from_bio(rq, bio); in blk_mq_bio_to_request()
1131 struct request *rq, struct bio *bio) in blk_mq_merge_queue_io() argument
1133 if (!hctx_allow_merges(hctx) || !bio_mergeable(bio)) { in blk_mq_merge_queue_io()
1134 blk_mq_bio_to_request(rq, bio); in blk_mq_merge_queue_io()
1144 if (!blk_mq_attempt_merge(q, ctx, bio)) { in blk_mq_merge_queue_io()
1145 blk_mq_bio_to_request(rq, bio); in blk_mq_merge_queue_io()
1161 struct bio *bio, in blk_mq_map_request() argument
1167 int rw = bio_data_dir(bio); in blk_mq_map_request()
1174 if (rw_is_sync(bio->bi_rw)) in blk_mq_map_request()
1177 trace_block_getrq(q, bio, rw); in blk_mq_map_request()
1184 trace_block_sleeprq(q, bio, rw); in blk_mq_map_request()
1242 static blk_qc_t blk_mq_make_request(struct request_queue *q, struct bio *bio) in blk_mq_make_request() argument
1244 const int is_sync = rw_is_sync(bio->bi_rw); in blk_mq_make_request()
1245 const int is_flush_fua = bio->bi_rw & (REQ_FLUSH | REQ_FUA); in blk_mq_make_request()
1253 blk_queue_bounce(q, &bio); in blk_mq_make_request()
1255 if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) { in blk_mq_make_request()
1256 bio_io_error(bio); in blk_mq_make_request()
1260 blk_queue_split(q, &bio, q->bio_split); in blk_mq_make_request()
1263 if (blk_attempt_plug_merge(q, bio, &request_count, in blk_mq_make_request()
1269 rq = blk_mq_map_request(q, bio, &data); in blk_mq_make_request()
1276 blk_mq_bio_to_request(rq, bio); in blk_mq_make_request()
1291 blk_mq_bio_to_request(rq, bio); in blk_mq_make_request()
1320 if (!blk_mq_merge_queue_io(data.hctx, data.ctx, rq, bio)) { in blk_mq_make_request()
1339 static blk_qc_t blk_sq_make_request(struct request_queue *q, struct bio *bio) in blk_sq_make_request() argument
1341 const int is_sync = rw_is_sync(bio->bi_rw); in blk_sq_make_request()
1342 const int is_flush_fua = bio->bi_rw & (REQ_FLUSH | REQ_FUA); in blk_sq_make_request()
1349 blk_queue_bounce(q, &bio); in blk_sq_make_request()
1351 if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) { in blk_sq_make_request()
1352 bio_io_error(bio); in blk_sq_make_request()
1356 blk_queue_split(q, &bio, q->bio_split); in blk_sq_make_request()
1359 blk_attempt_plug_merge(q, bio, &request_count, NULL)) in blk_sq_make_request()
1362 rq = blk_mq_map_request(q, bio, &data); in blk_sq_make_request()
1369 blk_mq_bio_to_request(rq, bio); in blk_sq_make_request()
1381 blk_mq_bio_to_request(rq, bio); in blk_sq_make_request()
1396 if (!blk_mq_merge_queue_io(data.hctx, data.ctx, rq, bio)) { in blk_sq_make_request()