Re: LVM on md0: raid0_make_request bug: can't convert block across chunks or bigger than 64k

From: Karl Vogel
Date: Sat Oct 25 2003 - 15:24:51 EST


On Tue, 2003-10-21 at 02:09, Neil Brown wrote:

> 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);


I noticed in the 2.6.0-test9 notes the following:

---
Neil Brown:
o md - Use sector rather than block numbers when splitting raid0
requests
---

I'm not sure if this is related to the problem I was experiencing?!
Anyway this doesn't fix the problem I was having. I still get the errors
with -test9. Above patch to dm-table.c works for me.

Just thought I'd mention this..


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/