2002-07-22 18:22:06

by Roe Peterson

[permalink] [raw]
Subject: 2.5.27 raid1 bug...


Okay, I've isolated a problem with raid1/md under 2.5.27...

Scenario:

/dev/hda2 and /dev/hdb2 are unused partitions.

/etc/raidtab:
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
chunk-size 64k
persistent-superblock 1
nr-spare-disks 0
device /dev/hda2
raid-disk 0
device /dev/hdb2
raid-disk 1

mkraid /dev/md0

Fails with a kernel panic. A bit of searching finds that this chunk of
code (md.c, about line 850):
rdev = list_entry(&mddev->disks.next, mdk_rdev_t, same_set);
sb = rdev->sb;

memset(sb, 0, sizeof(*sb));

Is failing. sb is == 1 !!

Anyone got any ideas?






2002-07-22 21:19:40

by NeilBrown

[permalink] [raw]
Subject: Re: 2.5.27 raid1 bug...

On Monday July 22, [email protected] wrote:
>
> Okay, I've isolated a problem with raid1/md under 2.5.27...
>
> Scenario:
>
> /dev/hda2 and /dev/hdb2 are unused partitions.
>
> /etc/raidtab:
> raiddev /dev/md0
> raid-level 1
> nr-raid-disks 2
> chunk-size 64k
> persistent-superblock 1
> nr-spare-disks 0
> device /dev/hda2
> raid-disk 0
> device /dev/hdb2
> raid-disk 1
>
> mkraid /dev/md0
>
> Fails with a kernel panic. A bit of searching finds that this chunk of
> code (md.c, about line 850):
> rdev = list_entry(&mddev->disks.next, mdk_rdev_t, same_set);
^
> sb = rdev->sb;
>
> memset(sb, 0, sizeof(*sb));
>
> Is failing. sb is == 1 !!
>
> Anyone got any ideas?

Yep, that '&' is wrong. Remove and it will work.

NeilBrown