Just a follow up:

> no luck. I finally ran a ksymoops and it seems raid0_map is the culprit.

in raid0.c, function raid0_map:

        block = *rsector >> 1;
        hash = conf->hash_table + block / conf->smallest->size;

Looks like a simple hash function to translate which zone a block falls into?
Only problem is that block its looking for is way off the end of my raid array!

May 17 12:33:12 bluenfs kernel: raid0 : md_size is 52187040 blocks.
..
May 17 12:22:17 bluenfs kernel: raid0_map: past end of hash array for block 1949266787 
(819/22)

A little warning line I added shows why the kernel has been falling over. I see
rsector is unsigned long *, whereas block is signed long. Can anyone else think
of why this might be happening?

Regards,
Shaun

Reply via email to