On Tuesday December 12, [EMAIL PROTECTED] wrote:
> 
> 
> On Wed, 13 Dec 2000, Neil Brown wrote:
> >
> > Could you add this test to the top of md_make_request as well, because
> > requests to raid5 don't go through generic_make_request.
> 
> Sure they do. Everything that calls ll_rw_block() or submit_bh() will go
> through generic_make_request.
> 
> Neil, you're probably thinking about __make_request(), which only triggers
> for "normal" devices.

Yes... you are right.  Alright, I can't escape it any other way so I
guess I must admit that  it is a raid5 bug.

But how can raid5 be calling b_end_io on a buffer_head that was never
passed to generic_make_request?
Answer, it snoops on the buffer cache to try to do complete stripe
writes.
The following patch disabled that code.

NeilBrown

--- drivers/md/raid5.c  2000/12/13 00:13:54     1.1
+++ drivers/md/raid5.c  2000/12/13 00:14:07
@@ -1009,6 +1009,7 @@
        struct buffer_head *bh;
        int method1 = INT_MAX, method2 = INT_MAX;
 
+#if 0
        /*
         * Attempt to add entries :-)
         */
@@ -1039,6 +1040,7 @@
                        atomic_dec(&bh->b_count);
                }
        }
+#endif
        PRINTK("handle_stripe() -- begin writing, stripe %lu\n", sh->sector);
        /*
         * Writing, need to update parity buffer.
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to