Re: [RFC] cleanup bcache bio handling

Ming Lei
2018-06-14T01:55:32Z

On Wed, Jun 13, 2018 at 10:54:09AM -0400, Kent Overstreet wrote:
> On Wed, Jun 13, 2018 at 03:56:32PM +0200, Christoph Hellwig wrote:
> > On Wed, Jun 13, 2018 at 07:06:41PM +0800, Ming Lei wrote:
> > > > before bio_alloc_pages) that can be switched to something that just creates a
> > > > single bvec.
> > >
> > > Yes, multipage bvec shouldn't break any driver or fs.
> >
> > It probably isn't broken, at least I didn't see assumptions of the same
> > number of segments. However the current poking into the bio internals as
> > a bad idea for a couple of reasons. First because it requires touching
> > bcache for any of these changes, second because it won't get merging of
> > pages into a single bio segment for bіos built by bch_bio_map or
> > bch_bio_alloc_pages, and third bcache is the last user of
> > bio_for_each_chunk_all in your branch, which I'd like to kill off to
> > keep the number of iterators down.
>
> Agreed about bio_for_each_chunk_all(), but I just looked at the patch that
> introduces them and it looks to me like there's no need, they should just be
> bio_for_each_segment_all().

Now we can't change the vector with bio_for_each_segment_all(), so
bio_for_each_chunk_all() has to be used. So looks it makes sense to use
bio_add_page() to remove bio_for_each_chunk_all().

Thanks,
Ming