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]

Reply via email to