On Wed, May 03, 2017 at 08:54:55AM +1000, NeilBrown wrote: > On Tue, May 02 2017, Ming Lei wrote: > > > On Tue, May 02, 2017 at 01:42:26PM +1000, NeilBrown wrote: > >> blk_bio_segment_split() makes sure bios have no more than > >> BIO_MAX_PAGES entries in the bi_io_vec. > >> This was done because bio_clone_bioset() (when given a > >> mempool bioset) could not handle larger io_vecs. > >> > >> No driver uses bio_clone_bioset() any more, they all > >> use bio_clone_fast() if anything, and bio_clone_fast() > >> doesn't clone the bi_io_vec. > > > > Maybe in future, some drivers still may try to use > > bio_clone_bioset() again, I suggest to add some comments > > on bio_clone_bioset() to make this usage explicitly. Also > > better to trigger a warning if a big src bio is passed to > > bio_clone_bioset(). > > There are now just two users for bio_clone_bioset(): bounce.c and btrfs. > > Christoph wants to get rid of bounce.c, which would leave one. > > I'd have to drill into the btrfs code to be sure, but it might be that > btrfs only needs bio_clone_fast(). That would leave zero users. > Then we wouldn't need a warning at all. > > So I agree that we need to guard against future incorrect usage. I'm not > yet sure what the best approach is. I think it is helpful to simply comment this function as obsolete. Thanks, Ming