On Wed, Aug 06, 2025 at 04:56:21PM +0200, Christoph Hellwig wrote: > > index 0a29b20939d17..d0ed28d40fe02 100644 > > --- a/include/linux/blk_types.h > > +++ b/include/linux/blk_types.h > > @@ -264,6 +264,8 @@ struct bio { > > > > unsigned short bi_max_vecs; /* max bvl_vecs we can hold */ > > > > + unsigned int page_gaps; /* a mask of all the vector gaps */ > > Bloating the bio for the gaps, especially as the bio is otherwise not > built to hardware limits at all seems like an odd tradeoff. Maybe, but I don't have anywhere else to put this. We split the bio to its hardware limits at some point, which is where this field gets initially set. It doesn't need to be a mask (though that conceptually is the most intuitive). It really just needs to indicate the lowest set bit of any page gap between segments. There is a one byte hole in the bio that can fit it without changing the bio size.