On Friday January 12, [EMAIL PROTECTED] wrote:
> I was reading the raid5.c code in the 2.4.0 distribution
> and one section of code didn't seem to be quite right.
> In hendle_stripe, the return_fail list of bhs is being
> processed but the return_fail pointer is not being
> updated. This is at line 1074. The section currently
> reads:
>
> while ((bh=return_fail)) {
> return_ok = bh->b_reqnext;
> bh->b_reqnext = NULL;
> bh->b_end_io(bh, 0);
> }
>
> shouldn't it read?
>
> while ((bh=return_fail)) {
> return_fail = bh->b_reqnext;
> bh->b_reqnext = NULL;
> bh->b_end_io(bh, 0);
> }
Yes, you are exactly right, and thankyou very much for doing the desk
check and for finding this.
This would only cause a problem if you had 2 failed drives in an
array, and at a time like that, a kernel Oopsing or spinning is the
last thing that you want.
(btw, why did you send this to linux-scsi instead of linux-raid?? just
a typo?)
Linus,
could you please apply the following patch? Thanks.
NeilBrown
--- drivers/md/raid5.c 2001/01/13 04:31:15 1.1
+++ drivers/md/raid5.c 2001/01/13 04:31:30
@@ -1071,7 +1071,7 @@
bh->b_end_io(bh, 1);
}
while ((bh=return_fail)) {
- return_ok = bh->b_reqnext;
+ return_fail = bh->b_reqnext;
bh->b_reqnext = NULL;
bh->b_end_io(bh, 0);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]