On Tuesday December 12, torvalds@transmeta.com 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 majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri Dec 15 2000 - 21:00:25 EST