On Mon, Mar 20, 2023 at 04:49:04PM -0700, Bart Van Assche wrote: > Submit the bio fragment with the lowest LBA first. This approach prevents > write errors when submitting large bios to host-managed zoned block devices. > This patch only modifies the behavior of drivers that call > bio_split_to_limits() directly. This includes DRBD, pktcdvd, dm, md and > the NVMe multipath code. Umm, doesn't it also change how blk-mq splits, which is the prime reason why you're looking into that? > + if (current->bio_list) { > + /* > + * The caller will submit the first half ('split') > + * before the second half ('bio'). > + */ > + bio_chain(split, bio); > + submit_bio_noacct(bio); > + return split; > + } > + /* > + * Submit the first half ('split') let the caller submit the > + * second half ('bio'). > + */ > + *nr_segs = bio_chain_nr_segments(bio, lim); > + bio_chain(split, bio); > + submit_bio_noacct(split); I'm really confused on why you want to change the behavior here for the case where run in a stacking context vs not, and neither the comments nor the commit log help me trying to figure out why.