On Sun, 28 Nov 2010 04:18:25 +0000 Ben Hutchings <[email protected]> wrote:
> On Sun, 2010-11-28 at 08:28 +1100, Neil Brown wrote:
> > The fix I would recommend for 2.6.26 is to add
> >
> > if (q->merge_bvec_fn)
> > rs->max_phys_segments = 1;
> >
> > to dm_set_device_limits. Though the redhat one is probably adequate.
> >
> > If you really need an upstream fix, you will need to chase upstream to apply
> > one :-(
>
> I won't do that myself - as you can see, I don't really understand the
> issue fully. Is that fix also valid (modulo renaming of
> max_phys_segments) for later versions?
>
Yes.
For current mainline it would look like replacing
if (q->merge_bvec_fn && !ti->type->merge)
limits->max_sectors =
min_not_zero(limits->max_sectors,
(unsigned int) (PAGE_SIZE >> 9));
with
if (q->merge_bvec_fn && !ti->type->merge)
limits->max_segments = 1;
(the test on ->type->merge is important and applies to 2.6.26 as well).
NeilBrown
signature.asc
Description: PGP signature

