Lines Matching refs:next
18 struct request *prev_rq, struct bio *prev, struct bio *next)
42 * - if 'pb' ends unaligned, the next bio must include
47 bio_get_first_bvec(next, &nb);
93 * If the next starting sector would be misaligned, stop the discard at
621 struct request *next)
627 if (blk_rq_sectors(req) + bio_sectors(next->bio) >
631 req->nr_phys_segments = segments + blk_rq_nr_discard_segments(next);
639 struct request *next)
643 if (req_gap_back_merge(req, next->bio))
649 if ((blk_rq_sectors(req) + blk_rq_sectors(next)) >
653 total_phys_segments = req->nr_phys_segments + next->nr_phys_segments;
657 if (!blk_cgroup_mergeable(req, next->bio))
660 if (blk_integrity_merge_rq(q, req, next) == false)
663 if (!bio_crypt_ctx_merge_rq(req, next))
713 struct request *next)
717 else if (blk_rq_pos(req) + blk_rq_sectors(req) == blk_rq_pos(next))
728 struct request *req, struct request *next)
730 if (!rq_mergeable(req) || !rq_mergeable(next))
733 if (req_op(req) != req_op(next))
736 if (rq_data_dir(req) != rq_data_dir(next)
737 || req->rq_disk != next->rq_disk)
741 !blk_write_same_mergeable(req->bio, next->bio))
748 if (req->write_hint != next->write_hint)
751 if (req->ioprio != next->ioprio)
756 * from next to rq and release next. merge_requests_fn
762 switch (blk_try_req_merge(req, next)) {
764 if (!req_attempt_discard_merge(q, req, next))
768 if (!ll_merge_requests_fn(q, req, next))
781 if (((req->rq_flags | next->rq_flags) & RQF_MIXED_MERGE) ||
783 (next->cmd_flags & REQ_FAILFAST_MASK)) {
785 blk_rq_set_mixed_merge(next);
793 if (next->start_time_ns < req->start_time_ns)
794 req->start_time_ns = next->start_time_ns;
796 req->biotail->bi_next = next->bio;
797 req->biotail = next->biotail;
799 req->__data_len += blk_rq_bytes(next);
802 elv_merge_requests(q, req, next);
804 blk_crypto_rq_put_keyslot(next);
807 * 'next' is going away, so update stats accordingly
809 blk_account_io_merge_request(next);
811 trace_block_rq_merge(next);
814 * ownership of bio passed from next to req, return 'next' for
817 next->bio = NULL;
818 return next;
824 struct request *next = elv_latter_request(q, rq);
826 if (next)
827 return attempt_merge(q, rq, next);
844 * Try to merge 'next' into 'rq'. Return true if the merge happened, false
845 * otherwise. The caller is responsible for freeing 'next' if the merge
849 struct request *next)
851 return attempt_merge(q, rq, next);