On Thu, Jul 20, 2023 at 1:12 PM Christoph Hellwig <hch@xxxxxx> wrote: > > Suggested-by: Christoph Hellwig <hch@xxxxxx> > > Hmm, I'm not sure I suggested adding copy offload.. > We meant for request based design, we will remove it. > > static inline unsigned int blk_rq_get_max_segments(struct request *rq) > > { > > if (req_op(rq) == REQ_OP_DISCARD) > > @@ -303,6 +310,8 @@ static inline bool bio_may_exceed_limits(struct bio *bio, > > break; > > } > > > > + if (unlikely(op_is_copy(bio->bi_opf))) > > + return false; > > This looks wrong to me. I think the copy ops need to be added to the > switch statement above as they have non-trivial splitting decisions. > Or at least should have those as we're missing the code to split > copy commands right now. > Agreed, copy will have non-trivial splitting decisions. But, I couldn't think of scenarios where this could happen, as we check for queue limits before issuing a copy. Do you see scenarios where split could happen for copy here. Acked for all other review comments. Thank you, Nitesh Shetty