Lines Matching refs:rq
266 void blk_recalc_rq_segments(struct request *rq) in blk_recalc_rq_segments() argument
269 &rq->q->queue_flags); in blk_recalc_rq_segments()
271 rq->nr_phys_segments = __blk_recalc_rq_segments(rq->q, rq->bio, in blk_recalc_rq_segments()
424 int blk_rq_map_sg(struct request_queue *q, struct request *rq, in blk_rq_map_sg() argument
430 if (rq->bio) in blk_rq_map_sg()
431 nsegs = __blk_bios_map_sg(q, rq->bio, sglist, &sg); in blk_rq_map_sg()
433 if (unlikely(rq->cmd_flags & REQ_COPY_USER) && in blk_rq_map_sg()
434 (blk_rq_bytes(rq) & q->dma_pad_mask)) { in blk_rq_map_sg()
436 (q->dma_pad_mask & ~blk_rq_bytes(rq)) + 1; in blk_rq_map_sg()
439 rq->extra_len += pad_len; in blk_rq_map_sg()
442 if (q->dma_drain_size && q->dma_drain_needed(rq)) { in blk_rq_map_sg()
443 if (rq->cmd_flags & REQ_WRITE) in blk_rq_map_sg()
453 rq->extra_len += q->dma_drain_size; in blk_rq_map_sg()
463 WARN_ON(nsegs > rq->nr_phys_segments); in blk_rq_map_sg()
606 void blk_rq_set_mixed_merge(struct request *rq) in blk_rq_set_mixed_merge() argument
608 unsigned int ff = rq->cmd_flags & REQ_FAILFAST_MASK; in blk_rq_set_mixed_merge()
611 if (rq->cmd_flags & REQ_MIXED_MERGE) in blk_rq_set_mixed_merge()
619 for (bio = rq->bio; bio; bio = bio->bi_next) { in blk_rq_set_mixed_merge()
624 rq->cmd_flags |= REQ_MIXED_MERGE; in blk_rq_set_mixed_merge()
724 int attempt_back_merge(struct request_queue *q, struct request *rq) in attempt_back_merge() argument
726 struct request *next = elv_latter_request(q, rq); in attempt_back_merge()
729 return attempt_merge(q, rq, next); in attempt_back_merge()
734 int attempt_front_merge(struct request_queue *q, struct request *rq) in attempt_front_merge() argument
736 struct request *prev = elv_former_request(q, rq); in attempt_front_merge()
739 return attempt_merge(q, prev, rq); in attempt_front_merge()
744 int blk_attempt_req_merge(struct request_queue *q, struct request *rq, in blk_attempt_req_merge() argument
747 return attempt_merge(q, rq, next); in blk_attempt_req_merge()
750 bool blk_rq_merge_ok(struct request *rq, struct bio *bio) in blk_rq_merge_ok() argument
752 if (!rq_mergeable(rq) || !bio_mergeable(bio)) in blk_rq_merge_ok()
755 if (!blk_check_merge_flags(rq->cmd_flags, bio->bi_rw)) in blk_rq_merge_ok()
759 if (bio_data_dir(bio) != rq_data_dir(rq)) in blk_rq_merge_ok()
763 if (rq->rq_disk != bio->bi_bdev->bd_disk || req_no_special_merge(rq)) in blk_rq_merge_ok()
767 if (blk_integrity_merge_bio(rq->q, rq, bio) == false) in blk_rq_merge_ok()
771 if (rq->cmd_flags & REQ_WRITE_SAME && in blk_rq_merge_ok()
772 !blk_write_same_mergeable(rq->bio, bio)) in blk_rq_merge_ok()
778 int blk_try_merge(struct request *rq, struct bio *bio) in blk_try_merge() argument
780 if (blk_rq_pos(rq) + blk_rq_sectors(rq) == bio->bi_iter.bi_sector) in blk_try_merge()
782 else if (blk_rq_pos(rq) - bio_sectors(bio) == bio->bi_iter.bi_sector) in blk_try_merge()