Neil Brown wrote:
>
> Linus,
>
> The following patch addresses a small number of bugs in raid1.c in
> 2.4.0-test10.
>
> 1/ A number of routines that are called from interrupt context used
> spin_lock_irq / spin_unlock_irq
> instead of the more appropriate
> spin_lock_irqsave( ,flags) / spin_unlock_irqrestore( ,flags)
>
> This can, and did, lead to deadlocks on an SMP system.
>
> 2/ b_rsector and b_rdev are used in a couple of cases *after*
> generic_make_request has been called. If the underlying devices
> was, for example, RAID0, these fields would no longer have the
> assumed values. I have changed these cases to use b_blocknr
> (scales) and b_dev.
>
> This bug could affect correctness if raid1 is used over raid0 or
> raid-linear or LVM.
>
> 3/ In two cases, b_blocknr is calculated by *multiplying* b_rsector
> by the sector-per-block count instead of *dividing* it.
>
> This bug could affect correctness when restarted a read request
> after a drive failure.
>
> NeilBrown
>
> --- ./drivers/md/raid1.c 2000/11/07 02:14:25 1.1
> +++ ./drivers/md/raid1.c 2000/11/07 02:15:21 1.2
Hi Neil!
I had to back out this patch from linux-2.4.0-test11-pre1
because after a reboot resyncing my raid1 would stop at about 1.7%.
After removing your patch resync is running fine.
www-neu:/root # cat /proc/mdstat
Personalities : [raid0] [raid1] [raid5]
read_ahead 1024 sectors
md0 : active raid1 hdc1[0]
16512 blocks [2/1] [U_]
md1 : active raid1 hdc2[0]
10005312 blocks [2/1] [U_]
md2 : active raid1 hdg1[2] hde1[0]
29316544 blocks [2/1] [U_]
[>....................] recovery = 1.7% (504576/29316544) finish=1547.3min
speed=310K/sec
unused devices: <none>
My setup:
PII-350 uniprocessor with 320MB
additional Promise Ultra66 IDE controller (PDC 20262)
(both md2-disk are on this controller)
kernel 2.4.0-test10 with the following patches:
test11-pre1
linux-2.4.0-test9-reiserfs-3.6.18-patch
MfG / Regards
Friedrich Lobenstock
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to [EMAIL PROTECTED]