Messages in this thread Patch in this message |  | | | From | Neil Brown <> | | Date | Tue, 21 Oct 2003 10:09:24 +1000 | | Subject | Re: LVM on md0: raid0_make_request bug: can't convert block across chunks or bigger than 64k |
| |
On Monday October 20, karl.vogel@seagha.com wrote: > On Mon, 2003-10-20 at 23:06, Kevin Corry wrote: > > On Monday 20 October 2003 15:35, Karl Vogel wrote: > > > I'm getting the following kernel messages on V2.6.0-test8-mm1 (I've also > > > tried plain -test7 and some kernels before that) when copying moderately > > > sized files from a raid-0/LVM volume: > > > > > > --- snip --- > > > raid0_make_request bug: can't convert block across chunks or bigger than > > > 64k 24081064 64 > > > raid0_make_request bug: can't convert block across chunks or bigger than > > > 64k 24080656 64 > > > raid0_make_request bug: can't convert block across chunks or bigger than > > > 64k 24080784 64 > > > raid0_make_request bug: can't convert block across chunks or bigger than > > > 64k 24080928 64 > > > > Looks like this was just recently fixed on the linux-raid list. > > > > http://marc.theaimsgroup.com/?l=linux-raid&m=106661294929434 > > Applied the patch on 2.6.0-test8-mm1 but it made no difference.
no, thats a completely different problem.
> > Somebody else referred to this posting: > http://marc.theaimsgroup.com/?l=linux-kernel&m=103369952814053&w=2 > > but that patch doesn't apply cleanly anymore and I'm not familiar with > the code to be confident to fix it up myself. (that post was from almost > exactly 1 year ago, so alot changed probably :)
That patch is already included.
The problem is that dm is not honouring the merge_bvec_fn that raid0 has set.
This patch might fix it, but I'm not very familiar with the dm code, so I make no promises.
(I wonder why you are running LVM on top of raid0 given that lvm contains raid0 functionality).
NeilBrown
----------- Diffstat output ------------ ./drivers/md/dm-table.c | 5 +++++ 1 files changed, 5 insertions(+) diff ./drivers/md/dm-table.c~current~ ./drivers/md/dm-table.c --- ./drivers/md/dm-table.c~current~ 2003-10-21 10:05:29.000000000 +1000 +++ ./drivers/md/dm-table.c 2003-10-21 10:06:27.000000000 +1000 @@ -489,6 +489,11 @@ int dm_get_device(struct dm_target *ti, rs->max_sectors = min_not_zero(rs->max_sectors, q->max_sectors); + if (q->merge_bvec_fn) + rs->max_sectors = + min_not_zero(rs->max_sectors, PAGE_SIZE>>9); + + rs->max_phys_segments = min_not_zero(rs->max_phys_segments, q->max_phys_segments); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |