• Home
  • Raw
  • Download

Lines Matching refs:rq

288 void blk_recalc_rq_segments(struct request *rq)  in blk_recalc_rq_segments()  argument
291 &rq->q->queue_flags); in blk_recalc_rq_segments()
293 rq->nr_phys_segments = __blk_recalc_rq_segments(rq->q, rq->bio, in blk_recalc_rq_segments()
440 int blk_rq_map_sg(struct request_queue *q, struct request *rq, in blk_rq_map_sg() argument
446 if (rq->bio) in blk_rq_map_sg()
447 nsegs = __blk_bios_map_sg(q, rq->bio, sglist, &sg); in blk_rq_map_sg()
449 if (unlikely(rq->cmd_flags & REQ_COPY_USER) && in blk_rq_map_sg()
450 (blk_rq_bytes(rq) & q->dma_pad_mask)) { in blk_rq_map_sg()
452 (q->dma_pad_mask & ~blk_rq_bytes(rq)) + 1; in blk_rq_map_sg()
455 rq->extra_len += pad_len; in blk_rq_map_sg()
458 if (q->dma_drain_size && q->dma_drain_needed(rq)) { in blk_rq_map_sg()
459 if (rq->cmd_flags & REQ_WRITE) in blk_rq_map_sg()
469 rq->extra_len += q->dma_drain_size; in blk_rq_map_sg()
479 WARN_ON(nsegs > rq->nr_phys_segments); in blk_rq_map_sg()
622 void blk_rq_set_mixed_merge(struct request *rq) in blk_rq_set_mixed_merge() argument
624 unsigned int ff = rq->cmd_flags & REQ_FAILFAST_MASK; in blk_rq_set_mixed_merge()
627 if (rq->cmd_flags & REQ_MIXED_MERGE) in blk_rq_set_mixed_merge()
635 for (bio = rq->bio; bio; bio = bio->bi_next) { in blk_rq_set_mixed_merge()
640 rq->cmd_flags |= REQ_MIXED_MERGE; in blk_rq_set_mixed_merge()
740 int attempt_back_merge(struct request_queue *q, struct request *rq) in attempt_back_merge() argument
742 struct request *next = elv_latter_request(q, rq); in attempt_back_merge()
745 return attempt_merge(q, rq, next); in attempt_back_merge()
750 int attempt_front_merge(struct request_queue *q, struct request *rq) in attempt_front_merge() argument
752 struct request *prev = elv_former_request(q, rq); in attempt_front_merge()
755 return attempt_merge(q, prev, rq); in attempt_front_merge()
760 int blk_attempt_req_merge(struct request_queue *q, struct request *rq, in blk_attempt_req_merge() argument
763 return attempt_merge(q, rq, next); in blk_attempt_req_merge()
766 bool blk_rq_merge_ok(struct request *rq, struct bio *bio) in blk_rq_merge_ok() argument
768 if (!rq_mergeable(rq) || !bio_mergeable(bio)) in blk_rq_merge_ok()
771 if (!blk_check_merge_flags(rq->cmd_flags, bio->bi_rw)) in blk_rq_merge_ok()
775 if (bio_data_dir(bio) != rq_data_dir(rq)) in blk_rq_merge_ok()
779 if (rq->rq_disk != bio->bi_bdev->bd_disk || req_no_special_merge(rq)) in blk_rq_merge_ok()
783 if (blk_integrity_merge_bio(rq->q, rq, bio) == false) in blk_rq_merge_ok()
787 if (rq->cmd_flags & REQ_WRITE_SAME && in blk_rq_merge_ok()
788 !blk_write_same_mergeable(rq->bio, bio)) in blk_rq_merge_ok()
794 int blk_try_merge(struct request *rq, struct bio *bio) in blk_try_merge() argument
796 if (blk_rq_pos(rq) + blk_rq_sectors(rq) == bio->bi_iter.bi_sector) in blk_try_merge()
798 else if (blk_rq_pos(rq) - bio_sectors(bio) == bio->bi_iter.bi_sector) in blk_try_merge()