Re: Immutable biovecs, dio rewrite

Kent Overstreet
2013-06-09T08:55:20Z

On Sun, Jun 09, 2013 at 10:34:08AM +0200, Geert Uytterhoeven wrote:
> On Sun, Jun 9, 2013 at 4:18 AM, Kent Overstreet <koverstreet@google.com> wrote:
> > * Changing all the drivers to go through the iterator means that we can
> > submit a partially completed bio to generic_make_request() - this
> > previously worked on some drivers, but worked on others.
>
> Some negation is missing in this sentence?

Heh, whoops.

Yeah, it seemed to work fine on normal request queue based drivers - and
expecting the driver to respect the current value of bi_idx isn't really
a crazy thing - but it breaks with other drivers. Both bcache and md
have hacks to work around this (c.f. md_trim_bio()) but those hacks have
downsides (you have to either modify the biovec, or clone the whole bio
and biovec).

But if drivers are using the bvec iterator primitives so they don't
modify the biovec, we get this for free.