On Mon, 2010-11-29 at 09:37 +1100, Neil Brown wrote: > On Sun, 28 Nov 2010 04:18:25 +0000 Ben Hutchings <benh@debian.org> 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). Why is it not necessary to set seg_boundary_mask to PAGE_CACHE_SIZE - 1, as for md devices? Ben. -- Ben Hutchings, Debian Developer and kernel team member
Attachment:
signature.asc
Description: This is a digitally signed message part